2019-08-26 04:45:03 +00:00
|
|
|
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
|
|
|
|
|
|
|
plugins {
|
2021-02-11 16:59:03 +00:00
|
|
|
`java-library`
|
2019-08-26 04:45:03 +00:00
|
|
|
}
|
|
|
|
|
2021-07-01 20:16:25 +00:00
|
|
|
project.description = "Bukkit"
|
|
|
|
|
2019-08-26 04:45:03 +00:00
|
|
|
applyPlatformAndCoreConfiguration()
|
|
|
|
applyShadowConfiguration()
|
|
|
|
|
|
|
|
repositories {
|
2021-01-21 12:07:17 +00:00
|
|
|
maven {
|
2021-01-21 12:34:33 +00:00
|
|
|
name = "SpigotMC"
|
2021-01-21 12:07:17 +00:00
|
|
|
url = uri("https://hub.spigotmc.org/nexus/content/groups/public")
|
|
|
|
}
|
|
|
|
maven {
|
2021-01-21 12:34:33 +00:00
|
|
|
name = "PaperMC"
|
2021-01-21 12:07:17 +00:00
|
|
|
url = uri("https://papermc.io/repo/repository/maven-public/")
|
2021-07-01 20:16:25 +00:00
|
|
|
}
|
2021-01-21 12:07:17 +00:00
|
|
|
maven {
|
2021-01-21 12:34:33 +00:00
|
|
|
name = "EngineHub"
|
2021-01-21 12:07:17 +00:00
|
|
|
url = uri("https://maven.enginehub.org/repo/")
|
2021-07-01 20:16:25 +00:00
|
|
|
}
|
2021-01-21 12:07:17 +00:00
|
|
|
maven {
|
|
|
|
name = "Athion"
|
|
|
|
url = uri("https://ci.athion.net/plugin/repository/tools/")
|
|
|
|
}
|
2020-08-14 19:29:15 +00:00
|
|
|
maven {
|
2021-01-21 12:34:33 +00:00
|
|
|
name = "JitPack"
|
|
|
|
url = uri("https://jitpack.io")
|
2021-07-01 20:16:25 +00:00
|
|
|
}
|
2020-02-26 04:21:01 +00:00
|
|
|
maven {
|
2021-01-21 12:34:33 +00:00
|
|
|
name = "ProtocolLib"
|
2020-02-26 04:21:01 +00:00
|
|
|
url = uri("https://repo.dmulloy2.net/nexus/repository/public/")
|
2021-07-01 20:16:25 +00:00
|
|
|
}
|
2021-01-21 12:07:17 +00:00
|
|
|
maven {
|
|
|
|
name = "Inventivetalent"
|
|
|
|
url = uri("https://repo.inventivetalent.org/content/groups/public/")
|
2021-07-01 20:16:25 +00:00
|
|
|
}
|
2021-01-22 22:23:08 +00:00
|
|
|
maven {
|
|
|
|
name = "IntellectualSites 3rd Party"
|
|
|
|
url = uri("https://mvn.intellectualsites.com/content/repositories/thirdparty")
|
2021-07-01 20:16:25 +00:00
|
|
|
}
|
2021-02-22 10:04:12 +00:00
|
|
|
maven {
|
2021-02-27 14:52:50 +00:00
|
|
|
name = "OSS Sonatype Snapshots"
|
2021-02-22 10:04:12 +00:00
|
|
|
url = uri("https://oss.sonatype.org/content/repositories/snapshots/")
|
2021-07-01 20:16:25 +00:00
|
|
|
}
|
2021-03-08 20:12:42 +00:00
|
|
|
maven {
|
|
|
|
name = "OSS Sonatype Releases"
|
|
|
|
url = uri("https://oss.sonatype.org/content/repositories/releases/")
|
|
|
|
}
|
2021-01-21 12:07:17 +00:00
|
|
|
flatDir { dir(File("src/main/resources")) }
|
2019-08-26 04:45:03 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
configurations.all {
|
|
|
|
resolutionStrategy {
|
|
|
|
force("com.google.guava:guava:21.0")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
2021-01-21 12:07:17 +00:00
|
|
|
compileOnly("com.github.MilkBowl:VaultAPI:1.7") { isTransitive = false }
|
2021-01-18 20:58:50 +00:00
|
|
|
api(project(":worldedit-core"))
|
|
|
|
api(project(":worldedit-libs:bukkit"))
|
2021-05-14 21:42:37 +00:00
|
|
|
implementation(":worldedit-adapters:")
|
2020-12-11 15:36:42 +00:00
|
|
|
// Paper-patched NMS jars
|
2021-01-21 12:07:17 +00:00
|
|
|
compileOnly("com.destroystokyo.paperv1_15_r1:paperv1_15_r1:1_15_r1")
|
|
|
|
compileOnly("com.destroystokyo.paperv1_16_r1:paperv1_16_r1:1_16_r1")
|
|
|
|
compileOnly("com.destroystokyo.paperv1_16_r2:paperv1_16_r2:1_16_r2")
|
|
|
|
compileOnly("com.destroystokyo.paperv1_16_r3:paperv1_16_r3:1_16_r3")
|
|
|
|
compileOnly("org.spigotmcv1_15_r1:spigotmcv1_15_r1:1_15_r1")
|
|
|
|
compileOnly("org.spigotmcv1_16_r1:spigotmcv1_16_r1:1_16_r1")
|
|
|
|
compileOnly("org.spigotmcv1_16_r2:spigotmcv1_16_r2:1_16_r2")
|
|
|
|
compileOnly("org.spigotmcv1_16_r3:spigotmcv1_16_r3:1_16_r3")
|
2021-02-11 16:59:03 +00:00
|
|
|
implementation("it.unimi.dsi:fastutil")
|
2021-01-18 20:58:50 +00:00
|
|
|
api("com.destroystokyo.paper:paper-api:1.16.5-R0.1-SNAPSHOT") {
|
2019-08-26 04:45:03 +00:00
|
|
|
exclude("junit", "junit")
|
2019-10-23 04:23:52 +00:00
|
|
|
isTransitive = false
|
2021-03-29 13:29:16 +00:00
|
|
|
exclude(group = "org.slf4j", module = "slf4j-api")
|
2019-08-26 04:45:03 +00:00
|
|
|
}
|
2021-07-01 20:16:25 +00:00
|
|
|
implementation(platform("org.apache.logging.log4j:log4j-bom:2.14.1") {
|
2021-03-29 13:29:16 +00:00
|
|
|
because("Spigot provides Log4J (sort of, not in API, implicitly part of server)")
|
|
|
|
})
|
|
|
|
implementation("org.apache.logging.log4j:log4j-api")
|
2021-07-01 20:16:25 +00:00
|
|
|
compileOnly("org.spigotmc:spigot:1.17-R0.1-SNAPSHOT")
|
2021-05-24 10:01:29 +00:00
|
|
|
compileOnly("org.jetbrains:annotations:21.0.0")
|
2021-01-18 20:58:50 +00:00
|
|
|
implementation("io.papermc:paperlib:1.0.6")
|
|
|
|
compileOnly("com.sk89q:dummypermscompat:1.10") {
|
2020-08-14 19:29:15 +00:00
|
|
|
exclude("com.github.MilkBowl", "VaultAPI")
|
|
|
|
}
|
2021-07-01 20:16:25 +00:00
|
|
|
testImplementation("org.mockito:mockito-core:3.11.2")
|
2021-06-08 21:50:45 +00:00
|
|
|
compileOnly("com.sk89q.worldguard:worldguard-bukkit:7.0.5") {
|
2019-09-02 19:22:43 +00:00
|
|
|
exclude("com.sk89q.worldedit", "worldedit-bukkit")
|
|
|
|
exclude("com.sk89q.worldedit", "worldedit-core")
|
|
|
|
exclude("com.sk89q.worldedit.worldedit-libs", "bukkit")
|
|
|
|
exclude("com.sk89q.worldedit.worldedit-libs", "core")
|
|
|
|
}
|
2021-06-17 23:01:30 +00:00
|
|
|
compileOnly("net.kyori:adventure-api:4.8.1")
|
|
|
|
testImplementation("net.kyori:adventure-api:4.8.1")
|
2021-06-19 08:17:43 +00:00
|
|
|
testImplementation("org.checkerframework:checker-qual:3.15.0")
|
2021-07-01 20:16:25 +00:00
|
|
|
testImplementation("org.spigotmc:spigot-api:1.17-R0.1-SNAPSHOT") { isTransitive = true }
|
2021-01-18 20:58:50 +00:00
|
|
|
api("com.intellectualsites.paster:Paster:1.0.1-SNAPSHOT")
|
2021-06-19 08:17:43 +00:00
|
|
|
api("org.lz4:lz4-java:1.8.0")
|
2021-05-30 21:49:46 +00:00
|
|
|
api("net.jpountz:lz4-java-stream:1.0.0") { isTransitive = false }
|
2020-09-16 14:10:00 +00:00
|
|
|
// Third party
|
2021-02-14 18:40:15 +00:00
|
|
|
implementation("org.bstats:bstats-bukkit:2.2.1")
|
|
|
|
implementation("org.bstats:bstats-base:2.2.1")
|
2021-02-27 14:52:50 +00:00
|
|
|
compileOnlyApi("org.inventivetalent:mapmanager:1.7.10-SNAPSHOT") { isTransitive = false }
|
|
|
|
implementation("com.github.TechFortress:GriefPrevention:16.17.1") { isTransitive = false }
|
2021-06-17 08:37:53 +00:00
|
|
|
implementation("com.github.bloodmc:GriefDefenderApi:920a610") { isTransitive = false }
|
|
|
|
implementation("com.flowpowered:flow-math:1.0.3") {
|
|
|
|
because("This dependency is needed by GriefDefender but not exposed transitively.")
|
|
|
|
isTransitive = false
|
|
|
|
}
|
2021-01-18 20:58:50 +00:00
|
|
|
implementation("com.massivecraft:mcore:7.0.1") { isTransitive = false }
|
|
|
|
implementation("com.bekvon.bukkit.residence:Residence:4.5._13.1") { isTransitive = false }
|
|
|
|
implementation("com.palmergames.bukkit:towny:0.84.0.9") { isTransitive = false }
|
|
|
|
implementation("com.thevoxelbox.voxelsniper:voxelsniper:5.171.0") { isTransitive = false }
|
2021-02-23 22:46:29 +00:00
|
|
|
implementation("com.comphenix.protocol:ProtocolLib:4.6.0") { isTransitive = false }
|
2021-07-01 20:16:25 +00:00
|
|
|
implementation("org.incendo.serverlib:ServerLib:2.2.1")
|
|
|
|
api("com.plotsquared:PlotSquared-Bukkit:6.0.6-SNAPSHOT")
|
2019-08-26 04:45:03 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
tasks.named<Copy>("processResources") {
|
2021-02-11 16:59:03 +00:00
|
|
|
val internalVersion = project.ext["internalVersion"]
|
|
|
|
inputs.property("internalVersion", internalVersion)
|
2019-08-26 04:45:03 +00:00
|
|
|
filesMatching("plugin.yml") {
|
2021-02-11 16:59:03 +00:00
|
|
|
expand("internalVersion" to internalVersion)
|
2019-08-26 04:45:03 +00:00
|
|
|
}
|
2020-03-22 22:00:02 +00:00
|
|
|
// exclude adapters entirely from this JAR, they should only be in the shadow JAR
|
2020-01-29 21:13:28 +00:00
|
|
|
exclude("**/worldedit-adapters.jar")
|
2019-08-26 04:45:03 +00:00
|
|
|
}
|
|
|
|
|
2019-12-16 11:00:12 +00:00
|
|
|
tasks.named<Jar>("jar") {
|
|
|
|
manifest {
|
|
|
|
attributes("Class-Path" to CLASSPATH,
|
|
|
|
"WorldEdit-Version" to project.version)
|
|
|
|
}
|
|
|
|
}
|
2019-08-26 04:45:03 +00:00
|
|
|
|
2021-02-25 21:58:17 +00:00
|
|
|
addJarManifest(WorldEditKind.Plugin, includeClasspath = true)
|
|
|
|
|
2019-08-26 04:45:03 +00:00
|
|
|
tasks.named<ShadowJar>("shadowJar") {
|
2020-03-22 22:00:02 +00:00
|
|
|
from(zipTree("src/main/resources/worldedit-adapters.jar").matching {
|
|
|
|
exclude("META-INF/")
|
|
|
|
})
|
2021-07-01 20:16:25 +00:00
|
|
|
archiveFileName.set("${rootProject.name}-Bukkit-${project.version}.${archiveExtension.getOrElse("jar")}")
|
2019-08-26 04:45:03 +00:00
|
|
|
dependencies {
|
2021-03-29 13:29:16 +00:00
|
|
|
// In tandem with not bundling log4j, we shouldn't relocate base package here.
|
|
|
|
// relocate("org.apache.logging", "com.sk89q.worldedit.log4j")
|
2019-11-19 21:25:36 +00:00
|
|
|
relocate("org.antlr.v4", "com.sk89q.worldedit.antlr4")
|
2019-08-26 04:45:03 +00:00
|
|
|
include(dependency(":worldedit-core"))
|
|
|
|
include(dependency(":worldedit-libs:bukkit"))
|
2021-03-29 13:29:16 +00:00
|
|
|
// Purposefully not included, we assume (even though no API exposes it) that Log4J will be present at runtime
|
|
|
|
// If it turns out not to be true for Spigot/Paper, our only two official platforms, this can be uncommented.
|
|
|
|
// include(dependency("org.apache.logging.log4j:log4j-api"))
|
2019-11-19 21:25:36 +00:00
|
|
|
include(dependency("org.antlr:antlr4-runtime"))
|
2021-02-11 16:59:03 +00:00
|
|
|
relocate("org.bstats", "com.sk89q.worldedit.bstats") {
|
|
|
|
include(dependency("org.bstats:"))
|
2021-02-01 14:23:47 +00:00
|
|
|
}
|
2019-08-26 04:45:03 +00:00
|
|
|
relocate("io.papermc.lib", "com.sk89q.worldedit.bukkit.paperlib") {
|
2021-02-11 16:59:03 +00:00
|
|
|
include(dependency("io.papermc:paperlib"))
|
2019-08-26 04:45:03 +00:00
|
|
|
}
|
|
|
|
relocate("it.unimi.dsi.fastutil", "com.sk89q.worldedit.bukkit.fastutil") {
|
|
|
|
include(dependency("it.unimi.dsi:fastutil"))
|
|
|
|
}
|
2021-07-01 20:16:25 +00:00
|
|
|
relocate("org.incendo.serverlib", "com.fastasyncworldedit.serverlib") {
|
|
|
|
include(dependency("org.incendo.serverlib:ServerLib:2.2.1"))
|
2021-01-24 11:01:03 +00:00
|
|
|
}
|
2021-07-01 20:16:25 +00:00
|
|
|
relocate("com.intellectualsites.paster", "com.fastasyncworldedit.paster") {
|
2020-12-21 14:57:57 +00:00
|
|
|
include(dependency("com.intellectualsites.paster:Paster:1.0.1-SNAPSHOT"))
|
2020-12-19 16:18:57 +00:00
|
|
|
}
|
2021-07-01 20:16:25 +00:00
|
|
|
relocate("com.github.luben", "com.fastasyncworldedit.core.zstd") {
|
2021-06-10 15:37:15 +00:00
|
|
|
include(dependency("com.github.luben:zstd-jni:1.5.0-2"))
|
2021-05-12 16:04:21 +00:00
|
|
|
}
|
2021-07-01 20:16:25 +00:00
|
|
|
relocate("net.jpountz", "com.fastasyncworldedit.core.jpountz") {
|
2021-05-30 21:49:46 +00:00
|
|
|
include(dependency("net.jpountz:lz4-java-stream:1.0.0"))
|
|
|
|
}
|
2021-07-01 20:16:25 +00:00
|
|
|
relocate("org.lz4", "com.fastasyncworldedit.core.lz4") {
|
2021-06-19 08:17:43 +00:00
|
|
|
include(dependency("org.lz4:lz4-java:1.8.0"))
|
2021-05-30 21:49:46 +00:00
|
|
|
}
|
2021-07-01 20:16:25 +00:00
|
|
|
relocate("net.kyori", "com.fastasyncworldedit.core.adventure") {
|
2021-07-01 20:57:52 +00:00
|
|
|
include(dependency("net.kyori:adventure-nbt:4.8.1"))
|
2021-07-01 20:16:25 +00:00
|
|
|
}
|
2019-08-26 04:45:03 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
tasks.named("assemble").configure {
|
|
|
|
dependsOn("shadowJar")
|
|
|
|
}
|