Skip to content

Commit

Permalink
Convert repo to use sub-projects (#25)
Browse files Browse the repository at this point in the history
* Move plugin to sub-project

* Bring in source-managers

* I'll figure out publishing later
  • Loading branch information
duncte123 authored Nov 26, 2023
1 parent 377d912 commit 7f035e2
Show file tree
Hide file tree
Showing 45 changed files with 3,858 additions and 122 deletions.
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,10 @@ Adding support for the following sources:

**\* Version 1.5.x will only work on Lavalink v3 if you are running java 17 or newer**

# Lavaplayer users
If you need to add the source managers to your lavalink instance as well you can use this library to add them: https://github.com/DuncteBot/skybot-source-managers
# Lava*player* users
Currently not supported

~~If you need to add the source managers to your lavalink instance as well you can use this library to add them: https://github.com/DuncteBot/skybot-source-managers~~

# Adding to lavalink

Expand Down
139 changes: 23 additions & 116 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
plugins {
java
`java-library`
`maven-publish`
alias(libs.plugins.lavalink)
id("com.github.johnrengelman.shadow") version "8.1.1"
id("com.github.breadmoirai.github-release") version "2.4.1"
alias(libs.plugins.lavalink) apply false
id("com.github.johnrengelman.shadow") version "8.1.1" apply false
id("com.github.breadmoirai.github-release") version "2.4.1" apply false
}

java {
Expand All @@ -13,128 +12,36 @@ java {
}
}

val pluginVersion = Version(1, 6, 0)

group = "com.dunctebot"
version = "$pluginVersion"
val archivesBaseName = "skybot-lavalink-plugin"
val preRelease = System.getenv("PRERELEASE") == "true"
val verName = "${if (preRelease) "PRE_" else ""}$pluginVersion${if(preRelease) "_${System.getenv("GITHUB_RUN_NUMBER")}" else ""}"

allprojects {
group = "com.dunctebot"

lavalinkPlugin {
name = "DuncteBot-plugin"
path = "$group.lavalinkplugin"
version = verName
apiVersion = libs.versions.lavalink.api
serverVersion = gitHash(libs.versions.lavalink.server)
}

repositories {
mavenCentral()
mavenLocal()
maven("https://m2.duncte123.dev/releases")
maven("https://m2.dv8tion.net/releases")
maven("https://maven.lavalink.dev/releases")
maven("https://maven.lavalink.dev/snapshots")
maven("https://jitpack.io")
}

dependencies {
implementation(libs.sourcemanager)
// implementation(project(":skybot-source-managers"))
}

tasks.getByName<Test>("test") {
useJUnitPlatform()
}

publishing {
repositories {
maven {
name = "lavalink"
url = uri("https://maven.lavalink.dev/releases")
credentials {
username = System.getenv("USERNAME")
password = System.getenv("PASSWORD")
}
authentication {
create<BasicAuthentication>("basic")
}
}
}
// publications {
// create<MavenPublication>("lavalink") {
// groupId = "com.dunctebot"
// artifactId = archivesBaseName
// version = "$pluginVersion"
//
// from(components["java"])
// }
// }
}

// make sure that we can resolve the dependencies
val impl = project.configurations.implementation.get()
impl.isCanBeResolved = true

tasks {
// processResources {
// from("src/main/resources") {
// include("**/dunctebot.properties")
// filter {
// it.replace(
// "@version@",
// "$pluginVersion"
// )
// }
// }
//
// into("build/resources/main")
// duplicatesStrategy = DuplicatesStrategy.INCLUDE
// }
jar {
archiveBaseName.set(archivesBaseName)
mavenCentral()
mavenLocal()
maven("https://m2.duncte123.dev/releases")
maven("https://m2.dv8tion.net/releases")
maven("https://maven.lavalink.dev/releases")
maven("https://maven.lavalink.dev/snapshots")
maven("https://jitpack.io")
}
shadowJar {
archiveBaseName.set(archivesBaseName)
archiveClassifier.set("")

configurations = listOf(impl)
}
build {
dependsOn(processResources)
dependsOn(compileJava)
dependsOn(shadowJar)
}
publish {
dependsOn(publishToMavenLocal)
}
wrapper {
gradleVersion = "8.2"
tasks.withType<Wrapper> {
gradleVersion = "8.4"
distributionType = Wrapper.DistributionType.BIN
}
}
// WHY ARE YOU BROKEN
tasks.githubRelease {
dependsOn(tasks.jar)
dependsOn(tasks.shadowJar)
mustRunAfter(tasks.shadowJar)
}

data class Version(val major: Int, val minor: Int, val patch: Int) {
override fun toString() = "$major.$minor.$patch"
subprojects {
tasks.withType<JavaCompile> {
options.encoding = "UTF-8"
options.compilerArgs.add("-Xlint:unchecked")
options.compilerArgs.add("-Xlint:deprecation")
}
}

githubRelease {
token(System.getenv("GITHUB_TOKEN"))
owner("DuncteBot")
repo("skybot-lavalink-plugin")
targetCommitish(System.getenv("RELEASE_TARGET"))
releaseAssets(tasks.shadowJar.get().outputs.files.toList())
tagName(verName)
releaseName(verName)
overwrite(false)
prerelease(preRelease)
body(changelog())
tasks.getByName<Test>("test") {
useJUnitPlatform()
}

96 changes: 96 additions & 0 deletions plugin/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
plugins {
`java-library`
`maven-publish`

alias(libs.plugins.lavalink)
id("com.github.johnrengelman.shadow")
id("com.github.breadmoirai.github-release")
}

val pluginVersion = Version(1, 6, 1)

group = "com.dunctebot"
version = "$pluginVersion"
val archivesBaseName = "skybot-lavalink-plugin"
val preRelease = System.getenv("PRERELEASE") == "true"
val verName = "${if (preRelease) "PRE_" else ""}$pluginVersion${if(preRelease) "_${System.getenv("GITHUB_RUN_NUMBER")}" else ""}"


lavalinkPlugin {
name = "DuncteBot-plugin"
path = "$group.lavalinkplugin"
version = verName
apiVersion = libs.versions.lavalink.api
serverVersion = gitHash(libs.versions.lavalink.server)
}

dependencies {
implementation(projects.sourceManagers)
}

// make sure that we can resolve the dependencies
val impl = project.configurations.implementation.get()
impl.isCanBeResolved = true

tasks {
jar {
archiveBaseName.set(archivesBaseName)
}
shadowJar {
archiveBaseName.set(archivesBaseName)
archiveClassifier.set("")

configurations = listOf(impl)
}
build {
dependsOn(processResources)
dependsOn(compileJava)
dependsOn(shadowJar)
}
publish {
dependsOn(publishToMavenLocal)
}
}

tasks.githubRelease {
dependsOn(tasks.jar)
dependsOn(tasks.shadowJar)
mustRunAfter(tasks.shadowJar)
}

data class Version(val major: Int, val minor: Int, val patch: Int) {
override fun toString() = "$major.$minor.$patch"
}

publishing {
repositories {
maven {
name = "lavalink"
url = if (preRelease) {
uri("https://maven.lavalink.dev/snapshots")
} else {
uri("https://maven.lavalink.dev/releases")
}
credentials {
username = System.getenv("USERNAME")
password = System.getenv("PASSWORD")
}
authentication {
create<BasicAuthentication>("basic")
}
}
}
}

githubRelease {
token(System.getenv("GITHUB_TOKEN"))
owner("DuncteBot")
repo("skybot-lavalink-plugin")
targetCommitish(System.getenv("RELEASE_TARGET"))
releaseAssets(tasks.shadowJar.get().outputs.files.toList())
tagName(verName)
releaseName(verName)
overwrite(false)
prerelease(preRelease)
body(changelog())
}
15 changes: 11 additions & 4 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,24 +1,31 @@
rootProject.name = "skybot-lavalink-plugin"
//include(":skybot-source-managers")
//project(":skybot-source-managers").projectDir = File("../skybot-source-managers")

include("plugin")
include("source-managers")

enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")

dependencyResolutionManagement {
versionCatalogs {
create("libs") {
common()
sourceManager()
plugins()
}
}
}

fun VersionCatalogBuilder.common() {
library("sourcemanager", "com.dunctebot", "sourcemanagers").version("1.9.0")

version("lavalink-api", "4.0.0-beta.5")
version("lavalink-server", "47201924be7d5a459753fc85f00ca30e49ba3cd1")
}

fun VersionCatalogBuilder.sourceManager() {
library("lavaplayer", "dev.arbjerg", "lavaplayer").version("2.0.3")
library("logger", "org.slf4j", "slf4j-api").version("2.0.7")
library("commonsIo", "commons-io", "commons-io").version("2.7")
library("jsoup", "org.jsoup", "jsoup").version("1.15.3")
library("findbugs", "com.google.code.findbugs", "jsr305").version("3.0.2")
}

fun VersionCatalogBuilder.plugins() {
Expand Down
Loading

0 comments on commit 7f035e2

Please sign in to comment.