2021-05-22 01:58:51 +02:00
|
|
|
|
2022-04-23 03:31:37 +02:00
|
|
|
// Check the root build.gradle under allprojects for common settings
|
2021-05-22 01:58:51 +02:00
|
|
|
configurations {
|
|
|
|
// configuration that holds jars to copy into lib
|
|
|
|
includeLibs
|
|
|
|
}
|
|
|
|
|
|
|
|
repositories {
|
|
|
|
maven { url "https://repo.maven.apache.org/maven2" }
|
|
|
|
maven { url "https://hub.spigotmc.org/nexus/content/repositories/snapshots/" }
|
2022-04-23 03:31:37 +02:00
|
|
|
maven { url 'https://papermc.io/repo/repository/maven-public/' }
|
2021-05-22 01:58:51 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
// includeLibs just says to include the library in the final jar
|
|
|
|
dependencies {
|
|
|
|
implementation project(":core")
|
2024-11-19 06:22:38 +01:00
|
|
|
runtimeOnly project(path: ':core', configuration: 'shadow')
|
2023-05-14 22:12:18 +02:00
|
|
|
|
2021-05-22 01:58:51 +02:00
|
|
|
// For spigot api
|
2023-05-14 22:12:18 +02:00
|
|
|
// We are using an older version to try and ensure that we are not using anything new older versions cant use.
|
2024-11-13 15:42:32 +01:00
|
|
|
implementation "org.spigotmc:spigot-api:1.13.2-R0.1-SNAPSHOT"
|
2022-04-23 03:31:37 +02:00
|
|
|
implementation "net.md-5:bungeecord-api:1.16-R0.4"
|
2023-12-10 13:00:19 +01:00
|
|
|
implementation "com.mojang:authlib:3.5.41"
|
2023-04-12 16:24:05 +02:00
|
|
|
// Be careful to only use what you need to from paper, otherwise it will become incompatible with spigot.
|
2024-11-13 15:42:32 +01:00
|
|
|
// compileOnly 'com.destroystokyo.paper:paper-api:1.16.5-R0.1-SNAPSHOT'
|
2021-05-22 01:58:51 +02:00
|
|
|
}
|
|
|
|
|
2024-11-19 06:22:38 +01:00
|
|
|
tasks.named('compileJava') {
|
|
|
|
dependsOn(':core:shadowJar')
|
|
|
|
}
|
|
|
|
|
2021-05-22 01:58:51 +02:00
|
|
|
jar {
|
|
|
|
from configurations.includeLibs.collect {
|
|
|
|
it.isDirectory() ? it : zipTree(it)
|
|
|
|
}
|
|
|
|
}
|
2024-11-18 05:55:59 +01:00
|
|
|
|
|
|
|
// Code for generating extra data in plugins.yml
|
|
|
|
// This may be able to be simplified drastically, though the goal is to get this working for now
|
|
|
|
// as it has gone through a few iterations.
|
|
|
|
sourceSets {
|
|
|
|
permissionsGen {
|
|
|
|
java {
|
|
|
|
srcDirs = ['src/main/java']
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
configurations {
|
|
|
|
permissionsGenCompileClasspath.extendsFrom compileClasspath
|
|
|
|
}
|
|
|
|
|
|
|
|
def compilePermissionsGen = tasks.register('compilePermissionsGen', JavaCompile) {
|
|
|
|
source = sourceSets.permissionsGen.allJava
|
|
|
|
classpath = configurations.permissionsGenCompileClasspath
|
|
|
|
destinationDirectory = file("$buildDir/classes/permissionsGen")
|
|
|
|
}
|
|
|
|
|
|
|
|
def templateSource = file('src/main/templates')
|
|
|
|
def templateDest = layout.buildDirectory.dir('generated/resources/templates')
|
|
|
|
|
|
|
|
def generatePermissionsYaml = tasks.register('generatePermissionsYaml') {
|
|
|
|
dependsOn compilePermissionsGen
|
|
|
|
|
|
|
|
doLast {
|
|
|
|
println "Generating permissions.yml file"
|
|
|
|
|
|
|
|
def classFiles = []
|
|
|
|
classFiles.addAll(files("$buildDir/classes/permissionsGen", sourceSets.permissionsGen.runtimeClasspath)
|
|
|
|
.collect { it.toURI().toURL() })
|
|
|
|
|
|
|
|
classFiles.addAll(project(':core').sourceSets.main.output.classesDirs
|
|
|
|
.collect { it.toURI().toURL() })
|
|
|
|
|
|
|
|
def urls = classFiles.toArray(new URL[0])
|
|
|
|
|
|
|
|
def parentClassLoader = Thread.currentThread().contextClassLoader
|
|
|
|
def classLoader = new URLClassLoader(urls, parentClassLoader)
|
|
|
|
|
|
|
|
def permissionsGeneratorClass = classLoader.loadClass('com.sekwah.advancedportals.spigot.PermissionsGeneratorSpigot')
|
|
|
|
def getPermissionsMethod = permissionsGeneratorClass.getMethod('getPermissions')
|
|
|
|
def permissionsYaml = getPermissionsMethod.invoke(null)
|
|
|
|
|
|
|
|
def permissionsFile = file("$buildDir/generated/resources/permissions.yml")
|
|
|
|
permissionsFile.parentFile.mkdirs()
|
|
|
|
permissionsFile.text = permissionsYaml
|
|
|
|
|
|
|
|
println "Permissions YAML generated at: $permissionsFile"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
def generateTemplates = tasks.register('generateTemplates', Copy) { task ->
|
|
|
|
dependsOn generatePermissionsYaml
|
|
|
|
|
|
|
|
def props = [
|
|
|
|
'permissions': { -> file("$buildDir/generated/resources/permissions.yml").text },
|
|
|
|
'pluginVersion': { -> project.version }
|
|
|
|
]
|
|
|
|
|
|
|
|
task.inputs.properties(props)
|
|
|
|
task.from(templateSource)
|
|
|
|
task.into(templateDest)
|
|
|
|
task.expand(props)
|
|
|
|
|
|
|
|
doFirst {
|
|
|
|
println "Running generateTemplates task"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
generateTemplates.configure {
|
|
|
|
outputs.upToDateWhen { false }
|
|
|
|
}
|
|
|
|
|
|
|
|
sourceSets.main.resources.srcDir(generateTemplates.map { it.outputs })
|