plugins { id 'java' id 'application' id 'com.gradleup.shadow' version '9.6.1' } group = 'eu.mhsl.minecraft' version = '1.0-SNAPSHOT' repositories { mavenCentral() } dependencies { implementation 'net.minestom:minestom:2026.10.05-26.2' runtimeOnly 'org.slf4j:slf4j-simple:2.0.20' } java { toolchain.languageVersion = JavaLanguageVersion.of(25) } application { mainClass = 'eu.mhsl.minecraft.endlessjumper.EndlessJumper' } shadowJar { archiveFileName = 'limbo.jar' mergeServiceFiles() } // Hochladen auf den Limbo: ./gradlew uploadLimbo, danach `sudo systemctl restart limbo`. // Erst in eine Temp-Datei, Prüfsumme vergleichen, dann atomar umbenennen: ein abgebrochener Upload // lässt das laufende JAR unberührt, und der laufende Prozess behält bis zum Neustart sein altes JAR. tasks.register('uploadLimbo') { dependsOn shadowJar doLast { def jar = shadowJar.archiveFile.get().asFile def checksum = jar.bytes.digest('SHA-256') providers.exec { commandLine 'scp', jar.absolutePath, 'minecraft@10.20.9.3:/home/minecraft/limbo/limbo.jar.new' }.result.get() providers.exec { commandLine 'ssh', 'minecraft@10.20.9.3', "cd ~/limbo && echo '${checksum} limbo.jar.new' | sha256sum -c --quiet && mv -f limbo.jar.new limbo.jar" }.result.get() } }