73 lines
2.6 KiB
Groovy
73 lines
2.6 KiB
Groovy
plugins {
|
|
id 'java'
|
|
id 'org.jetbrains.gradle.plugin.idea-ext' version '1.3'
|
|
}
|
|
|
|
ext {
|
|
hytaleHome = "${System.getProperty("user.home")}/.var/app/com.hypixel.HytaleLauncher/data/Hytale"
|
|
}
|
|
|
|
java {
|
|
toolchain.languageVersion = JavaLanguageVersion.of(java_version)
|
|
withSourcesJar()
|
|
withJavadocJar()
|
|
}
|
|
|
|
// Quiet warnings about missing Javadocs.
|
|
javadoc {
|
|
options.addStringOption('Xdoclint:-missing', '-quiet')
|
|
}
|
|
|
|
// Adds the Hytale server as a build dependency, allowing you to reference and
|
|
// compile against their code. This requires you to have Hytale installed using
|
|
// the official launcher for now.
|
|
dependencies {
|
|
implementation(files("$hytaleHome/install/$patchline/package/game/latest/Server/HytaleServer.jar"))
|
|
}
|
|
|
|
// Create the working directory to run the server if it does not already exist.
|
|
def serverRunDir = file("$projectDir/run")
|
|
if (!serverRunDir.exists()) {
|
|
serverRunDir.mkdirs()
|
|
}
|
|
|
|
// Updates the manifest.json file with the latest properties defined in the
|
|
// build.properties file. Currently we update the version and if packs are
|
|
// included with the plugin.
|
|
tasks.register('updatePluginManifest') {
|
|
def manifestFile = file('src/main/resources/manifest.json')
|
|
doLast {
|
|
if (!manifestFile.exists()) {
|
|
throw new GradleException("Could not find manifest.json at ${manifestFile.path}!")
|
|
}
|
|
def manifestJson = new groovy.json.JsonSlurper().parseText(manifestFile.text)
|
|
manifestJson.Version = version
|
|
manifestJson.IncludesAssetPack = includes_pack.toBoolean()
|
|
manifestFile.text = groovy.json.JsonOutput.prettyPrint(groovy.json.JsonOutput.toJson(manifestJson))
|
|
}
|
|
}
|
|
|
|
// Makes sure the plugin manifest is up to date.
|
|
tasks.named('processResources') {
|
|
dependsOn 'updatePluginManifest'
|
|
}
|
|
|
|
// Creates a run configuration in IDEA that will run the Hytale server with
|
|
// your plugin and the default assets.
|
|
idea.project.settings.runConfigurations {
|
|
'HytaleServer'(org.jetbrains.gradle.ext.Application) {
|
|
mainClass = 'com.hypixel.hytale.Main'
|
|
moduleName = project.idea.module.name + '.main'
|
|
programParameters = "--allow-op --assets=$hytaleHome/install/$patchline/package/game/latest/Assets.zip"
|
|
if (includes_pack.toBoolean()) {
|
|
programParameters += " --mods=${sourceSets.main.java.srcDirs.first().parentFile.absolutePath}"
|
|
}
|
|
if (load_user_mods.toBoolean()) {
|
|
programParameters += " --mods=$hytaleHome/UserData/Mods"
|
|
}
|
|
if (use_insecure_auth.toBoolean()) {
|
|
programParameters += " --auth-mode=insecure"
|
|
}
|
|
workingDirectory = serverRunDir.absolutePath
|
|
}
|
|
} |