mirror of
				https://github.com/IntellectualSites/PlotSquared.git
				synced 2025-11-04 03:03:43 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			127 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
 | 
						|
 | 
						|
repositories {
 | 
						|
    maven {
 | 
						|
        name = "PlaceholderAPI"
 | 
						|
        url = uri("https://repo.extendedclip.com/releases/")
 | 
						|
    }
 | 
						|
 | 
						|
    maven {
 | 
						|
        name = "PaperMC"
 | 
						|
        url = uri("https://repo.papermc.io/repository/maven-public/")
 | 
						|
    }
 | 
						|
 | 
						|
    maven {
 | 
						|
        name = "EssentialsX"
 | 
						|
        url = uri("https://repo.essentialsx.net/releases/")
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
// Make sure we control the exact version of paper being included, while dropping spigot + bukkit
 | 
						|
configurations.all {
 | 
						|
    exclude("org.bukkit")
 | 
						|
    exclude("org.spigotmc")
 | 
						|
 | 
						|
    resolutionStrategy.eachDependency {
 | 
						|
        if (requested.group == "io.papermc.paper" && requested.name == "paper-api") {
 | 
						|
            useVersion(checkNotNull(libs.paper.orNull?.version))
 | 
						|
            because("specific paper version is required to prevent binary incompatibilities on older versions")
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
dependencies {
 | 
						|
    api(projects.plotsquaredCore)
 | 
						|
 | 
						|
    // Metrics
 | 
						|
    implementation(libs.bstatsBukkit)
 | 
						|
 | 
						|
    // Paper
 | 
						|
    compileOnly(libs.paper)
 | 
						|
    implementation(libs.paperlib)
 | 
						|
 | 
						|
    // Plugins
 | 
						|
    compileOnly(libs.worldeditBukkit)
 | 
						|
    compileOnly(libs.faweBukkit) { isTransitive = false }
 | 
						|
    testImplementation(libs.faweBukkit) { isTransitive = false }
 | 
						|
    compileOnly(libs.vault)
 | 
						|
    compileOnly(libs.placeholderapi)
 | 
						|
    compileOnly(libs.luckperms)
 | 
						|
    compileOnly(libs.essentialsx)
 | 
						|
    compileOnly(libs.mvdwapi) { isTransitive = false }
 | 
						|
 | 
						|
    // Other libraries
 | 
						|
    implementation(libs.squirrelid) { isTransitive = false }
 | 
						|
    implementation(libs.serverlib)
 | 
						|
 | 
						|
    // Our libraries
 | 
						|
    implementation(libs.arkitektonika)
 | 
						|
    implementation(libs.paster)
 | 
						|
    implementation(libs.informativeAnnotations)
 | 
						|
 | 
						|
    // Adventure
 | 
						|
    implementation(libs.adventureBukkit)
 | 
						|
}
 | 
						|
 | 
						|
tasks.processResources {
 | 
						|
    filesMatching("plugin.yml") {
 | 
						|
        expand("version" to project.version)
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
tasks.named<ShadowJar>("shadowJar") {
 | 
						|
    dependsOn(":plotsquared-core:shadowJar")
 | 
						|
    dependencies {
 | 
						|
        exclude(dependency("org.checkerframework:"))
 | 
						|
    }
 | 
						|
 | 
						|
    relocate("net.kyori.option", "com.plotsquared.core.configuration.option")
 | 
						|
    relocate("net.kyori.adventure", "com.plotsquared.core.configuration.adventure")
 | 
						|
    relocate("net.kyori.examination", "com.plotsquared.core.configuration.examination")
 | 
						|
    relocate("io.papermc.lib", "com.plotsquared.bukkit.paperlib")
 | 
						|
    relocate("org.bstats", "com.plotsquared.metrics")
 | 
						|
    relocate("org.enginehub", "com.plotsquared.squirrelid")
 | 
						|
    relocate("org.khelekore.prtree", "com.plotsquared.prtree")
 | 
						|
    relocate("com.google.inject", "com.plotsquared.google")
 | 
						|
    relocate("org.aopalliance", "com.plotsquared.core.aopalliance")
 | 
						|
    relocate("cloud.commandframework.services", "com.plotsquared.core.services")
 | 
						|
    relocate("io.leangen.geantyref", "com.plotsquared.core.geantyref")
 | 
						|
    relocate("com.intellectualsites.arkitektonika", "com.plotsquared.core.arkitektonika")
 | 
						|
    relocate("com.intellectualsites.http", "com.plotsquared.core.http")
 | 
						|
    relocate("com.intellectualsites.paster", "com.plotsquared.core.paster")
 | 
						|
    relocate("org.incendo.serverlib", "com.plotsquared.bukkit.serverlib")
 | 
						|
    relocate("org.jetbrains", "com.plotsquared.core.annotations")
 | 
						|
    relocate("org.intellij.lang", "com.plotsquared.core.intellij.annotations")
 | 
						|
    relocate("javax.annotation", "com.plotsquared.core.annotation")
 | 
						|
    relocate("com.github.spotbugs", "com.plotsquared.core.spotbugs")
 | 
						|
    relocate("javax.inject", "com.plotsquared.core.annotation.inject")
 | 
						|
    relocate("net.jcip", "com.plotsquared.core.annotations.jcip")
 | 
						|
    relocate("edu.umd.cs.findbugs", "com.plotsquared.core.annotations.findbugs")
 | 
						|
    relocate("com.intellectualsites.annotations", "com.plotsquared.core.annotations.informative")
 | 
						|
 | 
						|
    // Get rid of all the libs which are 100% unused.
 | 
						|
    minimize()
 | 
						|
 | 
						|
    mergeServiceFiles()
 | 
						|
}
 | 
						|
 | 
						|
tasks {
 | 
						|
    withType<Javadoc> {
 | 
						|
        val isRelease = if (rootProject.version.toString().endsWith("-SNAPSHOT")) "TODO" else rootProject.version.toString()
 | 
						|
        val opt = options as StandardJavadocDocletOptions
 | 
						|
        opt.links("https://jd.papermc.io/paper/1.20.4/")
 | 
						|
        opt.links("https://docs.enginehub.org/javadoc/com.sk89q.worldedit/worldedit-bukkit/" + libs.worldeditBukkit.get().versionConstraint.toString())
 | 
						|
        opt.links("https://intellectualsites.github.io/plotsquared-javadocs/core/")
 | 
						|
        opt.links("https://jd.advntr.dev/api/" + libs.adventureApi.get().versionConstraint.toString())
 | 
						|
        opt.links("https://google.github.io/guice/api-docs/" + libs.guice.get().versionConstraint.toString() + "/javadoc/")
 | 
						|
        opt.links("https://checkerframework.org/api/")
 | 
						|
        opt.isLinkSource = true
 | 
						|
        opt.bottom(File("$rootDir/javadocfooter.html").readText())
 | 
						|
        opt.isUse = true
 | 
						|
        opt.encoding("UTF-8")
 | 
						|
        opt.keyWords()
 | 
						|
        opt.addStringOption("-since", isRelease)
 | 
						|
        opt.noTimestamp()
 | 
						|
    }
 | 
						|
}
 |