diff options
| -rw-r--r-- | .github/workflows/build.yml | 24 | ||||
| -rw-r--r-- | build.gradle | 75 | ||||
| -rw-r--r-- | build.gradle.kts | 143 | ||||
| -rw-r--r-- | bukkit/build.gradle | 167 | ||||
| -rw-r--r-- | bukkit/build.gradle.kts | 186 | ||||
| -rw-r--r-- | common/build.gradle | 11 | ||||
| -rw-r--r-- | common/build.gradle.kts | 7 | ||||
| -rw-r--r-- | settings.gradle | 12 | ||||
| -rw-r--r-- | settings.gradle.kts | 17 |
9 files changed, 371 insertions, 271 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0cda7c2d..5f299d28 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,18 +24,30 @@ jobs: **/*.gradle* **/gradle-wrapper.properties - name: Build with Gradle - run: ./gradlew allJar --no-daemon --stacktrace + run: ./gradlew --no-daemon --stacktrace - name: "Upload the Java ${{ matrix.java-version }} plugin JAR" uses: actions/upload-artifact@v4 with: - name: "Quests-JDK${{ matrix.java-version }}" + name: "! Quests-JDK${{ matrix.java-version }}" path: | build/libs/*.jar - !build/libs/*+java8.jar + !build/libs/*-downgraded-*.jar if-no-files-found: error - - name: Upload the Java 8 plugin JAR + - name: Upload the downgraded Java 8 plugin JAR uses: actions/upload-artifact@v4 with: - name: Quests-JDK8 (use at your own risk) - path: build/libs/*+java8.jar + name: Quests-JDK1.8 (use at your own risk) + path: build/libs/*-downgraded-8.jar + if-no-files-found: error + - name: Upload the downgraded Java 16 plugin JAR + uses: actions/upload-artifact@v4 + with: + name: Quests-JDK16 (use at your own risk) + path: build/libs/*-downgraded-16.jar + if-no-files-found: error + - name: Upload the downgraded Java 17 plugin JAR + uses: actions/upload-artifact@v4 + with: + name: Quests-JDK17 (use at your own risk) + path: build/libs/*-downgraded-17.jar if-no-files-found: error diff --git a/build.gradle b/build.gradle deleted file mode 100644 index 3224ed45..00000000 --- a/build.gradle +++ /dev/null @@ -1,75 +0,0 @@ -import net.raphimc.javadowngrader.gradle.task.DowngradeJarTask - -plugins { - id 'java' - id 'io.github.goooler.shadow' version '8.1.7' - id 'net.raphimc.java-downgrader' version '1.1.2' - id 'maven-publish' -} - -defaultTasks 'allJar' - -allprojects { - apply plugin: 'java' - - group = 'com.leonardobishop' - version = '3.15' - - sourceCompatibility = 21 - targetCompatibility = 21 -} - -task allJar( type: Jar, dependsOn: subprojects.tasks['build'] ) { - if (project.findProperty('gitversion') == null || project.findProperty('gitversion') == 'true') { - ext.gitCommitHash = 'git rev-parse --verify --short HEAD'.execute().text.trim() - project.version = "${project.version}-${gitCommitHash}" - subprojects.each { - it.version = "${it.version}-${gitCommitHash}" - } - } - - subprojects.each { subproject -> - from subproject.configurations.archives.allArtifacts.files.collect { - zipTree(it) - } - } - archiveBaseName = 'Quests' -} - -tasks.register("java8Jar", DowngradeJarTask) { - input = tasks.jar.archiveFile.get().asFile - outputSuffix = "+java8" - compileClassPath = sourceSets.main.compileClasspath -}.get().dependsOn("allJar") -allJar.finalizedBy("java8Jar") - -artifacts { - archives allJar -} - -publishing { - publications { - maven(MavenPublication) { - groupId = 'com.leonardobishop' - artifactId = 'quests' - version = project.version - - artifact allJar - pom.withXml { - asNode().dependencies.dependency.each { dep -> - dep.parent().remove(dep) - } - } - } - } - - repositories { - maven { - credentials { - username = project.findProperty('mavenUser') ?: System.getenv('MAVEN_USER') - password = project.findProperty('mavenPassword') ?: System.getenv('MAVEN_PASSWORD') - } - url = "https://repo.leonardobishop.com/releases/" - } - } -} diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 00000000..d9166750 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,143 @@ +import xyz.wagyourtail.jvmdg.gradle.task.DowngradeJar +import java.io.ByteArrayOutputStream + +plugins { + java + `maven-publish` + id("xyz.wagyourtail.jvmdowngrader") +} + +allprojects { + apply(plugin = "java") + + group = "com.leonardobishop" + version = "3.15" + + java { + toolchain { + languageVersion = JavaLanguageVersion.of(21) + } + } +} + +subprojects { + tasks.withType<JavaCompile> { + options.encoding = Charsets.UTF_8.name() + options.release = 21 + } + + tasks.withType<Javadoc> { + options.encoding = Charsets.UTF_8.name() + } + + tasks.withType<ProcessResources> { + filteringCharset = Charsets.UTF_8.name() + } +} + +defaultTasks = mutableListOf("clean", "allJar") + +tasks.register<Jar>("allJar") { + subprojects { + dependsOn.add(tasks.build) + } + + if (project.findProperty("gitversion") == null || project.findProperty("gitversion") == "true") { + val gitCommitHash = gitCommitHash() + + allprojects { + version = "${version}-${gitCommitHash}" + } + } + + subprojects { + configurations.archives { + allArtifacts.files.forEach { + from(zipTree(it)) + } + } + } + + archiveBaseName = "Quests" +} + +fun gitCommitHash(): String { + val outputStream = ByteArrayOutputStream() + + project.exec { + commandLine = "git rev-parse --verify --short HEAD".split(" ") + standardOutput = outputStream + } + + val gitCommitHashBytes = outputStream.toByteArray() + return String(gitCommitHashBytes).trim() +} + +val javaVersions = listOf( + // from 1.12 to 1.16.5 + JavaVersion.VERSION_1_8, + + // from 1.17 to 1.17.1 + JavaVersion.VERSION_16, + + // from 1.18 to 1.20.4 + JavaVersion.VERSION_17 +) + +for (javaVersion in javaVersions) { + val allJarTask = tasks.getByName<Jar>("allJar") + + // we use this hacky solution to improve display and sort order in IntelliJ Gradle tab + val majorVersion = javaVersion.ordinal + 1 + val majorVersionFormatted = String.format("%02d", majorVersion) + val taskName = "downgrade${majorVersionFormatted}AllJar" + + tasks.register<DowngradeJar>(taskName) { + inputFile = allJarTask.archiveFile + downgradeTo = javaVersion + quiet = true + + archiveBaseName = "Quests" + archiveClassifier = "downgraded-${majorVersion}" + } + + defaultTasks.add(taskName) +} + +artifacts { + val allJarTask = tasks.named("allJar") + archives(allJarTask) +} + +publishing { + publications { + create<MavenPublication>("maven") { + groupId = "com.leonardobishop" + artifactId = "quests" + version = project.version.toString() + + val allJarTask = tasks.named("allJar") + artifact(allJarTask) + + pom { + dependencies { + clear() + } + } + } + } + + repositories { + maven("https://repo.leonardobishop.com/releases/") { + credentials { + username = findPropertyString("mavenUser") ?: System.getenv("MAVEN_USER") + password = findPropertyString("mavenPassword") ?: System.getenv("MAVEN_PASSWORD") + } + } + } +} + +fun findPropertyString(propertyName: String): String? { + val propertyValue = project.findProperty(propertyName) + return if (propertyValue is String) propertyValue else null +} diff --git a/bukkit/build.gradle b/bukkit/build.gradle deleted file mode 100644 index a972e5f6..00000000 --- a/bukkit/build.gradle +++ /dev/null @@ -1,167 +0,0 @@ -plugins { - id 'java' - id 'io.github.goooler.shadow' -} - -processResources { - duplicatesStrategy = duplicatesStrategy.INCLUDE - from(sourceSets.main.resources.srcDirs) { - include 'plugin.yml' - expand('version': project.version) - } -} - -repositories { - // Folia, Paper - maven { url = 'https://repo.papermc.io/repository/maven-public/' } - // Paper (adventure-bom snapshots) - maven { url = 'https://s01.oss.sonatype.org/content/repositories/snapshots/' } - // ASkyBlock, BentoBox, bStats, Citizens - maven { url = 'https://repo.codemc.org/repository/maven-public/' } - // AuthLib - maven { url = 'https://libraries.minecraft.net/' } - // CoreProtect - maven { url = 'https://maven.playpro.com/' } - // EcoBosses, EcoMobs - maven { url = 'https://repo.auxilor.io/repository/maven-public/' } - // EssentialsX - maven { url = 'https://repo.essentialsx.net/releases/' } - // MMOItems, MythicLib - maven { url = 'https://nexus.phoenixdevt.fr/repository/maven-public/' } - // MythicMobs 4, MythicMobs 5 - maven { url = 'https://mvn.lumine.io/repository/maven-public/' } - // NuVotifier - maven { url = 'https://repo.leonardobishop.com/releases/' } - // Oraxen - maven { url = 'https://repo.oraxen.com/releases' } - // PlaceholderAPI - maven { url = 'https://repo.extendedclip.com/content/repositories/dev/' } - // CustomFishing, ItemsAdder, SCore, ShopGUIPlus, Slimefun4 - maven { url = 'https://jitpack.io/' } - // PlayerPoints - maven { url = 'https://repo.rosewooddev.io/repository/public/' } - // SuperiorSkyblock2 - maven { url = 'https://repo.bg-software.com/repository/api/' } - // uSkyBlock TODO fix whenever repo is up - //maven { url = 'https://raw.githubusercontent.com/uskyblock/uskyblock-repo/master/' } - // VotingPlugin - maven { url = 'https://nexus.bencodez.com/repository/maven-public/' } - // WildStacker - maven { url = 'https://repo.bg-software.com/repository/api/' } - // ZNPCsPlus - maven { url = 'https://repo.pyr.lol/snapshots' } - - // bungeecord-chat, HikariCP, hppc, JetBrains Annotations, slf4j - mavenCentral() -} - -dependencies { - compileOnly project(':common') - // Paper - compileOnly("io.papermc.paper:paper-api:1.20.5-R0.1-SNAPSHOT") { - // exclude libraries not available in 1.8 - exclude(group: 'it.unimi.dsi', module: 'fastutil') - exclude(group: 'org.apache.maven', module: 'maven-resolver-provider') - exclude(group: 'net.md-5', module: 'bungeecord-chat') - } - // Folia - compileOnly('dev.folia:folia-api:1.20.4-R0.1-SNAPSHOT') { - // exclude libraries not available in 1.8 - exclude(group: 'it.unimi.dsi', module: 'fastutil') - exclude(group: 'org.apache.maven', module: 'maven-resolver-provider') - exclude(group: 'net.md-5', module: 'bungeecord-chat') - } - // ASkyBlock - compileOnly('com.wasteofplastic:askyblock:3.0.9.4') { transitive = false } - // AuthLib - compileOnly('com.mojang:authlib:1.5.21') { transitive = false } - // BentoBox - compileOnly('world.bentobox:bentobox:1.22.0-SNAPSHOT') { transitive = false } - // Citizens - compileOnly('net.citizensnpcs:citizensapi:2.0.30-SNAPSHOT') { transitive = false } - // CoreProtect - compileOnly 'net.coreprotect:coreprotect:21.2' - // CustomFishing - compileOnly 'com.github.Xiao-MoMi:Custom-Fishing:2.1.2' - // EcoBosses, EcoMobs - compileOnly 'com.willfp:EcoBosses:9.14.0' - compileOnly 'com.willfp:EcoMobs:10.0.0-b1' - compileOnly 'com.willfp:eco:6.65.1' - compileOnly 'com.willfp:libreforge:4.21.1' - // EssentialsX - compileOnly('net.essentialsx:EssentialsX:2.19.7') { transitive = false } - // IridiumSkyblock TODO fix whenever repo is up - //compileOnly 'com.github.Iridium-Development:IridiumSkyblock:master-SNAPSHOT' - // ItemsAdder - compileOnly 'com.github.LoneDev6:API-ItemsAdder:3.5.0b' - // JetBrains Annotations - compileOnly 'org.jetbrains:annotations:24.1.0' - // MMOItems - compileOnly 'net.Indyuce:MMOItems-API:6.9.2-SNAPSHOT' - // MythicLib - compileOnly 'io.lumine:MythicLib-dist:1.6-SNAPSHOT' - // MythicMobs 4 - compileOnly 'io.lumine.xikage:MythicMobs:4.12.0' - // MythicMobs 5 - compileOnly 'io.lumine:Mythic-Dist:5.2.0' - // NuVotifier - compileOnly 'com.vexsoftware:NuVotifier:2.7.3' - // Oraxen - compileOnly('io.th0rgal:oraxen:1.175.0') { transitive = false } - // PlaceholderAPI - compileOnly 'me.clip:placeholderapi:2.11.3-DEV-160' - // PlayerPoints - compileOnly('org.black_ixx:playerpoints:3.2.5') - // SCore - compileOnly 'com.github.Ssomar-Developement:SCore:3.4.7' - // ShopGUIPlus - compileOnly('com.github.brcdev-minecraft:shopgui-api:3.0.0') { transitive = false } - // Slimefun4 - compileOnly 'com.github.Slimefun:Slimefun4:RC-37' - // SuperiorSkyblock2 - compileOnly 'com.bgsoftware:SuperiorSkyblockAPI:2022.9' - // uSkyBlock TODO fix whenever repo is up - //compileOnly('ovh.uskyblock:uSkyBlock-API:2.8.9') { transitive = false } - // VotingPlugin - compileOnly('com.bencodez:votingplugin:6.15') { transitive = false } - // WildStacker - compileOnly 'com.bgsoftware:WildStackerAPI:2023.3' - // ZNPCsPlus - compileOnly 'lol.pyr:znpcsplus-api:2.0.0-SNAPSHOT' - - // IridiumSkyblock, PyroFishingPro, uSkyBlock - compileOnly fileTree(dir: 'libs', includes: ['*.jar']) - - // bStats - implementation 'org.bstats:bstats-bukkit-lite:1.8' - // HikariCP - implementation 'com.zaxxer:HikariCP:5.0.1' - // slf4j - implementation 'org.slf4j:slf4j-nop:1.7.36' - // hppc - implementation 'com.carrotsearch:hppc:0.9.1' - // bungeecord-chat - implementation('net.md-5:bungeecord-chat:1.20-R0.2') { transitive = false } -} - -tasks.build { - dependsOn(tasks.shadowJar) -} - -shadowJar { - exclude('mojang-translations/*') - - relocate 'org.bstats', 'com.leonardobishop.quests.libs.bstats' - relocate 'com.zaxxer.hikari', 'com.leonardobishop.quests.libs.hikari' - relocate 'org.slf4j', 'com.leonardobishop.quests.libs.slf4j' - relocate 'com.carrotsearch.hppc', 'com.leonardobishop.quests.libs.hppc' - relocate 'net.md_5.bungee', 'com.leonardobishop.quests.libs.bungee' - - minimize { - exclude(dependency('org.bstats:.*:.*')) - exclude(dependency('com.zaxxer:.*:.*')) - exclude(dependency('org.slf4j:.*:.*')) - } - - archiveClassifier.set('') -} diff --git a/bukkit/build.gradle.kts b/bukkit/build.gradle.kts new file mode 100644 index 00000000..916c938f --- /dev/null +++ b/bukkit/build.gradle.kts @@ -0,0 +1,186 @@ +plugins { + id("io.github.goooler.shadow") +} + +tasks.build { + dependsOn.add(tasks.shadowJar) +} + +tasks.withType<ProcessResources> { + filesMatching("plugin.yml") { + expand(mapOf("version" to project.version)) + } +} + +repositories { + // Folia, Paper + maven("https://repo.papermc.io/repository/maven-public/") + // Paper (adventure-bom snapshots) + maven("https://s01.oss.sonatype.org/content/repositories/snapshots/") + // ASkyBlock, BentoBox, bStats, Citizens + maven("https://repo.codemc.org/repository/maven-public/") + // AuthLib + maven("https://libraries.minecraft.net/") + // CoreProtect + maven("https://maven.playpro.com/") + // EcoBosses, EcoMobs + maven("https://repo.auxilor.io/repository/maven-public/") + // EssentialsX + maven("https://repo.essentialsx.net/releases/") + // MMOItems, MythicLib + maven("https://nexus.phoenixdevt.fr/repository/maven-public/") + // MythicMobs 4, MythicMobs 5 + maven("https://mvn.lumine.io/repository/maven-public/") + // NuVotifier + maven("https://repo.leonardobishop.com/releases/") + // Oraxen + maven("https://repo.oraxen.com/releases") + // PlaceholderAPI + maven("https://repo.extendedclip.com/content/repositories/dev/") + // CustomFishing, ItemsAdder, SCore, ShopGUIPlus, Slimefun4 + maven("https://jitpack.io/") + // PlayerPoints + maven("https://repo.rosewooddev.io/repository/public/") + // SuperiorSkyblock2 + maven("https://repo.bg-software.com/repository/api/") + // uSkyBlock TODO fix whenever repo is up + //maven("https://raw.githubusercontent.com/uskyblock/uskyblock-repo/master/") + // VotingPlugin + maven("https://nexus.bencodez.com/repository/maven-public/") + // WildStacker + maven("https://repo.bg-software.com/repository/api/") + // ZNPCsPlus + maven("https://repo.pyr.lol/snapshots") + + // bungeecord-chat, HikariCP, hppc, JetBrains Annotations, slf4j + mavenCentral() +} + +dependencies { + // Quests common module + compileOnlyProject(":common") + + // Paper + compileOnlyServer("io.papermc.paper:paper-api:1.20.6-R0.1-SNAPSHOT") + // Folia + compileOnlyServer("dev.folia:folia-api:1.20.4-R0.1-SNAPSHOT") + + // ASkyBlock + compileOnlyPlugin("com.wasteofplastic:askyblock:3.0.9.4") + // AuthLib + compileOnlyPlugin("com.mojang:authlib:1.5.21") + // BentoBox + compileOnlyPlugin("world.bentobox:bentobox:1.22.0-SNAPSHOT") + // Citizens + compileOnlyPlugin("net.citizensnpcs:citizensapi:2.0.30-SNAPSHOT") + // CoreProtect + compileOnlyPlugin("net.coreprotect:coreprotect:21.2") + // CustomFishing + compileOnlyPlugin("com.github.Xiao-MoMi:Custom-Fishing:2.1.2") + // EcoBosses, EcoMobs + compileOnlyPlugin("com.willfp:EcoBosses:9.14.0") + compileOnlyPlugin("com.willfp:EcoMobs:10.0.0-b1") + compileOnlyPlugin("com.willfp:eco:6.65.1") + compileOnlyPlugin("com.willfp:libreforge:4.21.1") + // EssentialsX + compileOnlyPlugin("net.essentialsx:EssentialsX:2.19.7") + // IridiumSkyblock TODO fix whenever repo is up + //compileOnlyPlugin("com.github.Iridium-Development:IridiumSkyblock:master-SNAPSHOT") + // ItemsAdder + compileOnlyPlugin("com.github.LoneDev6:API-ItemsAdder:3.5.0b") + // JetBrains Annotations + compileOnlyPlugin("org.jetbrains:annotations:24.1.0") + // MMOItems + compileOnlyPlugin("net.Indyuce:MMOItems-API:6.9.2-SNAPSHOT") + // MythicLib + compileOnlyPlugin("io.lumine:MythicLib-dist:1.6-SNAPSHOT") + // MythicMobs 4 + compileOnlyPlugin("io.lumine.xikage:MythicMobs:4.12.0") + // MythicMobs 5 + compileOnlyPlugin("io.lumine:Mythic-Dist:5.2.0") + // NuVotifier + compileOnlyPlugin("com.vexsoftware:NuVotifier:2.7.3") + // Oraxen + compileOnlyPlugin("io.th0rgal:oraxen:1.175.0") + // PlaceholderAPI + compileOnlyPlugin("me.clip:placeholderapi:2.11.3-DEV-160") + // PlayerPoints + compileOnlyPlugin("org.black_ixx:playerpoints:3.2.5") + // SCore + compileOnlyPlugin("com.github.Ssomar-Developement:SCore:3.4.7") + // ShopGUIPlus + compileOnlyPlugin("com.github.brcdev-minecraft:shopgui-api:3.0.0") + // Slimefun4 + compileOnlyPlugin("com.github.Slimefun:Slimefun4:RC-37") + // SuperiorSkyblock2 + compileOnlyPlugin("com.bgsoftware:SuperiorSkyblockAPI:2022.9") + // uSkyBlock TODO fix whenever repo is up + //compileOnlyPlugin("ovh.uskyblock:uSkyBlock-API:2.8.9") + // VotingPlugin + compileOnlyPlugin("com.bencodez:votingplugin:6.15") + // WildStacker + compileOnlyPlugin("com.bgsoftware:WildStackerAPI:2023.3") + // ZNPCsPlus + compileOnlyPlugin("lol.pyr:znpcsplus-api:2.0.0-SNAPSHOT") + + // IridiumSkyblock, PyroFishingPro, uSkyBlock + compileOnlyLibs("libs", listOf("*.jar")) + + // bStats + implementation("org.bstats:bstats-bukkit-lite:1.8") + // HikariCP + implementation("com.zaxxer:HikariCP:5.0.1") + // slf4j + implementation("org.slf4j:slf4j-nop:1.7.36") + // hppc + implementation("com.carrotsearch:hppc:0.9.1") + // bungeecord-chat + implementation("net.md-5:bungeecord-chat:1.20-R0.2") { isTransitive = false } +} + +tasks.shadowJar { + exclude("mojang-translations/*") + + relocate("org.bstats", "com.leonardobishop.quests.libs.bstats") + relocate("com.zaxxer.hikari", "com.leonardobishop.quests.libs.hikari") + relocate("org.slf4j", "com.leonardobishop.quests.libs.slf4j") + relocate("com.carrotsearch.hppc", "com.leonardobishop.quests.libs.hppc") + relocate("net.md_5.bungee", "com.leonardobishop.quests.libs.bungee") + + minimize { + exclude(dependency("org.bstats:.*:.*")) + exclude(dependency("com.zaxxer:.*:.*")) + exclude(dependency("org.slf4j:.*:.*")) + } + + archiveClassifier.set(null as String?) +} + +// Moved it here for readability reasons +fun DependencyHandler.compileOnlyProject(s: String): Dependency? { + return compileOnly(project(s)) +} + +// We want to exclude some libraries not available in 1.8 from server dependencies +fun DependencyHandler.compileOnlyServer(s: String): Dependency { + return compileOnly(s) { + exclude(group = "it.unimi.dsi", module = "fastutil") + exclude(group = "org.apache.maven", module = "maven-resolver-provider") + exclude(group = "net.md-5", module = "bungeecord-chat") + } +} + +// We don't want compile-only plugin dependencies to be transitive by default +fun DependencyHandler.compileOnlyPlugin(s: String): Dependency { + return compileOnly(s) { + isTransitive = false + } +} + +// Another method made just for readability reasons +fun DependencyHandler.compileOnlyLibs(dir: String, include: List<String>): Dependency? { + return compileOnly(fileTree(mapOf( + "dir" to dir, + "include" to include + ))) +} diff --git a/common/build.gradle b/common/build.gradle deleted file mode 100644 index 6e783da8..00000000 --- a/common/build.gradle +++ /dev/null @@ -1,11 +0,0 @@ -plugins { - id 'java' -} - -repositories { - mavenCentral() -} - -dependencies { - compileOnly 'org.jetbrains:annotations:16.0.2' -} diff --git a/common/build.gradle.kts b/common/build.gradle.kts new file mode 100644 index 00000000..79231e9b --- /dev/null +++ b/common/build.gradle.kts @@ -0,0 +1,7 @@ +repositories { + mavenCentral() +} + +dependencies { + compileOnly("org.jetbrains:annotations:16.0.2") +} diff --git a/settings.gradle b/settings.gradle deleted file mode 100644 index b2d792fc..00000000 --- a/settings.gradle +++ /dev/null @@ -1,12 +0,0 @@ -pluginManagement { - repositories { - // io.github.goooler.shadow - maven { url = 'https://plugins.gradle.org/m2/' } - // net.raphimc.java-downgrader - maven { url = 'https://maven.lenni0451.net/releases' } - } -} - -rootProject.name = 'Quests' -include 'common' -include 'bukkit' diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 00000000..87c44507 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,17 @@ +pluginManagement { + repositories { + // io.github.goooler.shadow + maven("https://plugins.gradle.org/m2/") + // xyz.wagyourtail.jvmdowngrader + maven("https://maven.wagyourtail.xyz/releases") + } + + plugins { + id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" + id("io.github.goooler.shadow") version "8.1.7" + id("xyz.wagyourtail.jvmdowngrader") version "0.7.1" + } +} + +rootProject.name = "quests" +include("common", "bukkit") |
