Merge pull request #19 from FedericoLeiva12/main
Use official Hytale mavel repository and fix Github Actions workflow
This commit is contained in:
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
@@ -1,8 +1,12 @@
|
|||||||
name: Build Plugin
|
name: Build Plugin
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ main, develop ]
|
branches: [ main, develop ]
|
||||||
|
tags: [ 'v*' ]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ main ]
|
branches: [ main ]
|
||||||
|
|
||||||
|
|||||||
75
build.gradle
75
build.gradle
@@ -1,6 +1,7 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id 'java'
|
id 'java'
|
||||||
id 'org.jetbrains.gradle.plugin.idea-ext' version '1.3'
|
id 'org.jetbrains.gradle.plugin.idea-ext' version '1.3'
|
||||||
|
id 'com.gradleup.shadow' version '9.3.1'
|
||||||
}
|
}
|
||||||
|
|
||||||
import org.gradle.internal.os.OperatingSystem
|
import org.gradle.internal.os.OperatingSystem
|
||||||
@@ -26,11 +27,10 @@ ext {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!project.hasProperty('hytaleHome')) {
|
def hytaleHomePath = project.findProperty('hytaleHome')
|
||||||
throw new GradleException('Your Hytale install could not be detected automatically. If you are on an unsupported platform or using a custom install location, please define the install location using the hytale_home property.');
|
def hasHytaleHome = hytaleHomePath && file(hytaleHomePath).exists()
|
||||||
}
|
if (!hasHytaleHome) {
|
||||||
else if (!file(project.findProperty('hytaleHome')).exists()) {
|
logger.lifecycle("Hytale install not detected; run configs that launch the server will be skipped. Set -Phytale_home=/path/to/Hytale to enable them.")
|
||||||
throw new GradleException("Failed to find Hytale at the expected location. Please make sure you have installed the game. The expected location can be changed using the hytale_home property. Currently looking in ${project.findProperty('hytaleHome')}")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
java {
|
java {
|
||||||
@@ -45,16 +45,27 @@ javadoc {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Adds the Hytale server as a build dependency, allowing you to reference and
|
// 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
|
// compile against their code without bundling it. When a local install is
|
||||||
// the official launcher for now.
|
// present, we still use its jar for launching the server in IDE run configs.
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(files("$hytaleHome/install/$patchline/package/game/latest/Server/HytaleServer.jar"))
|
compileOnly("com.hypixel.hytale:Server:$hytale_build")
|
||||||
|
if (hasHytaleHome) {
|
||||||
|
runtimeOnly(files("$hytaleHome/install/$patchline/package/game/latest/Server/HytaleServer.jar"))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Your dependencies here
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create the working directory to run the server if it does not already exist.
|
repositories {
|
||||||
def serverRunDir = file("$projectDir/run")
|
mavenCentral()
|
||||||
if (!serverRunDir.exists()) {
|
maven {
|
||||||
serverRunDir.mkdirs()
|
name = "hytale-release"
|
||||||
|
url = uri("https://maven.hytale.com/release")
|
||||||
|
}
|
||||||
|
maven {
|
||||||
|
name = "hytale-pre-release"
|
||||||
|
url = uri("https://maven.hytale.com/pre-release")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Updates the manifest.json file with the latest properties defined in the
|
// Updates the manifest.json file with the latest properties defined in the
|
||||||
@@ -78,7 +89,24 @@ tasks.named('processResources') {
|
|||||||
dependsOn 'updatePluginManifest'
|
dependsOn 'updatePluginManifest'
|
||||||
}
|
}
|
||||||
|
|
||||||
def createServerRunArguments(String srcDir) {
|
tasks.named('shadowJar') {
|
||||||
|
archiveClassifier.set('')
|
||||||
|
mergeServiceFiles()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ensure the shaded jar is produced during a normal build.
|
||||||
|
tasks.named('build') {
|
||||||
|
dependsOn 'shadowJar'
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hasHytaleHome) {
|
||||||
|
// Create the working directory to run the server if it does not already exist.
|
||||||
|
def serverRunDir = file("$projectDir/run")
|
||||||
|
if (!serverRunDir.exists()) {
|
||||||
|
serverRunDir.mkdirs()
|
||||||
|
}
|
||||||
|
|
||||||
|
def createServerRunArguments = { String srcDir ->
|
||||||
def programParameters = '--allow-op --disable-sentry --assets="' + "${hytaleHome}/install/$patchline/package/game/latest/Assets.zip" + '"'
|
def programParameters = '--allow-op --disable-sentry --assets="' + "${hytaleHome}/install/$patchline/package/game/latest/Assets.zip" + '"'
|
||||||
def modPaths = []
|
def modPaths = []
|
||||||
if (includes_pack.toBoolean()) {
|
if (includes_pack.toBoolean()) {
|
||||||
@@ -91,21 +119,21 @@ def createServerRunArguments(String srcDir) {
|
|||||||
programParameters += ' --mods="' + modPaths.join(',') + '"'
|
programParameters += ' --mods="' + modPaths.join(',') + '"'
|
||||||
}
|
}
|
||||||
return programParameters
|
return programParameters
|
||||||
}
|
}
|
||||||
|
|
||||||
// Creates a run configuration in IDEA that will run the Hytale server with
|
// Creates a run configuration in IDEA that will run the Hytale server with
|
||||||
// your plugin and the default assets.
|
// your plugin and the default assets.
|
||||||
idea.project.settings.runConfigurations {
|
idea.project.settings.runConfigurations {
|
||||||
'HytaleServer'(org.jetbrains.gradle.ext.Application) {
|
'HytaleServer'(org.jetbrains.gradle.ext.Application) {
|
||||||
mainClass = 'com.hypixel.hytale.Main'
|
mainClass = 'com.hypixel.hytale.Main'
|
||||||
moduleName = project.idea.module.name + '.main'
|
moduleName = project.idea.module.name + '.main'
|
||||||
programParameters = createServerRunArguments(sourceSets.main.java.srcDirs.first().parentFile.absolutePath)
|
programParameters = createServerRunArguments(sourceSets.main.java.srcDirs.first().parentFile.absolutePath)
|
||||||
workingDirectory = serverRunDir.absolutePath
|
workingDirectory = serverRunDir.absolutePath
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Creates a launch.json file for VSCode with the same configuration
|
// Creates a launch.json file for VSCode with the same configuration
|
||||||
tasks.register('generateVSCodeLaunch') {
|
tasks.register('generateVSCodeLaunch') {
|
||||||
def vscodeDir = file("$projectDir/.vscode")
|
def vscodeDir = file("$projectDir/.vscode")
|
||||||
def launchFile = file("$vscodeDir/launch.json")
|
def launchFile = file("$vscodeDir/launch.json")
|
||||||
doLast {
|
doLast {
|
||||||
@@ -128,4 +156,11 @@ tasks.register('generateVSCodeLaunch') {
|
|||||||
]
|
]
|
||||||
launchFile.text = groovy.json.JsonOutput.prettyPrint(groovy.json.JsonOutput.toJson(launchConfig))
|
launchFile.text = groovy.json.JsonOutput.prettyPrint(groovy.json.JsonOutput.toJson(launchConfig))
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
tasks.register('generateVSCodeLaunch') {
|
||||||
|
doLast {
|
||||||
|
logger.lifecycle("Skipped VSCode launch configuration because hytale_home is not set or the install path is missing.")
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,11 @@ includes_pack=true
|
|||||||
# official launcher.
|
# official launcher.
|
||||||
patchline=release
|
patchline=release
|
||||||
|
|
||||||
|
# The exact Hytale build to compile against. Use the build string from the
|
||||||
|
# launcher (format YYYY.MM.DD-<hash>) so Gradle pulls the matching server jar
|
||||||
|
# for your selected patchline.
|
||||||
|
hytale_build=2026.01.27-734d39026
|
||||||
|
|
||||||
# Determines if the development server should also load mods from the user's
|
# Determines if the development server should also load mods from the user's
|
||||||
# standard mods folder. This lets you test mods by installing them where a
|
# standard mods folder. This lets you test mods by installing them where a
|
||||||
# normal player would, instead of adding them as dependencies or adding them
|
# normal player would, instead of adding them as dependencies or adding them
|
||||||
|
|||||||
Reference in New Issue
Block a user