Cutscenes/build.gradle

159 lines
4 KiB
Groovy
Raw Permalink Normal View History

2023-07-04 15:28:48 +00:00
import groovy.json.JsonSlurper
import java.nio.file.Files
plugins {
id 'java'
id 'io.papermc.paperweight.userdev' version '1.5.5'
id 'maven-publish'
id 'com.github.johnrengelman.shadow' version '8.1.1'
2023-07-04 15:28:48 +00:00
}
group = 'me.unurled.sacredrealms'
version = '0.1.2'
2023-07-04 15:28:48 +00:00
def minecraft_version = '1.20.1'
repositories {
mavenCentral()
maven {
name = "papermc-repo"
url = "https://repo.papermc.io/repository/maven-public/"
}
maven {
name = "sonatype"
url = "https://oss.sonatype.org/content/groups/public/"
}
maven {
name = "citizens"
url = "https://maven.citizensnpcs.co/repo"
}
maven {
name = "SacredRealms"
url = "https://git.unurled.me/api/packages/SacredRealms/maven"
}
}
dependencies {
// PaperMc
compileOnly "io.papermc.paper:paper-api:${minecraft_version}-R0.1-SNAPSHOT"
// NMS
paperweightDevelopmentBundle("io.papermc.paper:dev-bundle:${minecraft_version}-R0.1-SNAPSHOT")
// Citizens
compileOnly ("net.citizensnpcs:citizens-main:2.0.32-SNAPSHOT") {
exclude group: '*', module: '*'
}
// Redis
implementation "redis.clients:jedis:4.3.1"
2023-07-04 15:28:48 +00:00
}
def targetJavaVersion = 17
java {
def javaVersion = JavaVersion.toVersion(targetJavaVersion)
sourceCompatibility = javaVersion
targetCompatibility = javaVersion
if (JavaVersion.current() < javaVersion) {
toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion)
}
}
shadowJar {
archiveClassifier.set('')
}
tasks {
assemble {
dependsOn(reobfJar)
}
build {
dependsOn(shadowJar)
}
}
2023-07-04 15:28:48 +00:00
tasks.withType(JavaCompile).configureEach {
if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) {
options.release = targetJavaVersion
}
}
processResources {
def props = [version: version]
inputs.properties props
filteringCharset 'UTF-8'
filesMatching('plugin.yml') {
expand props
}
}
publishing {
publications {
maven(MavenPublication) {
artifactId = project.name
from components.java
}
}
repositories {
maven {
name = 'SacredRealms'
url = uri('https://git.unurled.me/api/packages/SacredRealms/maven')
credentials(HttpHeaderCredentials) {
name = "Authorization"
value = "token ${System.getenv('TOKEN')}"
}
authentication {
header(HttpHeaderAuthentication)
}
}
}
}
def serverDir = file("${project.buildDir}/server")
def serverJar = file("${serverDir}/paper-${minecraft_version}.jar")
def pluginsDir = file("${serverDir}/plugins")
def pluginJar = file("${pluginsDir}/${archivesBaseName}.jar")
def buildJar = file("${project.buildDir}/libs/${archivesBaseName}-${version}.jar")
2023-07-04 15:28:48 +00:00
def semver = minecraft_version.tokenize('.')
tasks.register('prepare') {
group 'server'
onlyIf {
!serverJar.exists()
}
doFirst {
serverDir.mkdirs()
def baseUrl = 'https://papermc.io/api/v2/projects/paper'
def builds = new URL("${baseUrl}/version_group/${semver[0]}.${semver[1]}/builds")
def latest = new JsonSlurper()
.parseText(builds.text)
.builds
.reverse()
.find { it.version == minecraft_version }
def fileName = latest.downloads.application.name
def jarUrl = new URL("${baseUrl}/versions/${latest.version}/builds/${latest.build}/downloads/${fileName}")
serverJar << jarUrl.openStream()
}
}
tasks.register('start', JavaExec) {
group 'server'
dependsOn 'prepare', 'build'
doFirst {
pluginsDir.mkdirs()
pluginJar.delete()
Files.createSymbolicLink(pluginJar.toPath(), buildJar.toPath())
}
classpath = files(serverJar)
workingDir = serverDir
mainClass = 'io.papermc.paperclip.Main'
2023-07-04 15:28:48 +00:00
jvmArgs = [ '-Ddisable.watchdog=true', '-Dcom.mojang.eula.agree=true' ]
args = [ '--nogui' ]
standardInput = System.in
}