repositories { maven { name = 'papermc' url = 'https://repo.papermc.io/repository/maven-public/' } maven { name = 'henkelmax' url = 'https://maven.maxhenkel.de/repository/public' } } dependencies { // Paper 26.3 auf dem Server, gebaut gegen die 26.2-API wie die anderen Plugins compileOnly 'io.papermc.paper:paper-api:26.2.build.129-stable' // Simple Voice Chat 2.6.24 auf dem Server compileOnly 'de.maxhenkel.voicechat:voicechat-api:2.6.0' implementation project(':protocol') } processResources { inputs.property 'version', project.version filesMatching('plugin.yml') { expand version: project.version } } jar { archiveFileName = 'voice-bridge.jar' dependsOn ':protocol:jar' from(project(':protocol').sourceSets.main.output) } // Hochladen auf den Paper-Server: ./gradlew :plugin:uploadPlugin, danach Paper neu starten. // Erst in eine Temp-Datei, Prüfsumme vergleichen, dann atomar umbenennen. tasks.register('uploadPlugin') { dependsOn jar doLast { def file = jar.archiveFile.get().asFile def checksum = file.bytes.digest('SHA-256') def target = '/home/minecraft/server/plugins/voice-bridge.jar' providers.exec { commandLine 'scp', file.absolutePath, "minecraft@10.20.9.3:${target}.new" }.result.get() providers.exec { commandLine 'ssh', 'minecraft@10.20.9.3', "echo '${checksum} ${target}.new' | sha256sum -c --quiet && mv -f ${target}.new ${target}" }.result.get() } } dependencies { testImplementation platform('org.junit:junit-bom:5.13.4') testImplementation 'org.junit.jupiter:junit-jupiter' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' testImplementation 'io.papermc.paper:paper-api:26.2.build.129-stable' } tasks.named('test') { useJUnitPlatform() }