import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import org.gradle.language.jvm.tasks.ProcessResources plugins { id 'java' id 'io.papermc.paperweight.userdev' version '2.0.0-beta.21' id 'com.gradleup.shadow' version '8.3.6' } group = 'cn.infstar' version = '1.5.0' repositories { mavenCentral() maven { name = 'papermc' url = uri('https://repo.papermc.io/repository/maven-public/') } } dependencies { paperweight.paperDevBundle('1.21.11-R0.1-SNAPSHOT') } java { toolchain.languageVersion.set(JavaLanguageVersion.of(21)) } tasks.withType(JavaCompile).configureEach { options.encoding = 'UTF-8' } tasks.withType(ProcessResources).configureEach { filteringCharset = 'UTF-8' } tasks.named('processResources', ProcessResources).configure { inputs.property('version', project.version) filesMatching('paper-plugin.yml') { expand('version': project.version) } } tasks.named('jar').configure { enabled = false } tasks.named('shadowJar', ShadowJar).configure { group = 'build' description = '构建包含全部运行期可开关模块的 EssentialsC 插件。' archiveFileName.set("EssentialsC-${project.version}.jar") configurations = [project.configurations.runtimeClasspath] } tasks.named('assemble').configure { dependsOn(tasks.named('shadowJar')) } def registerTestServerDeployTask = { String taskName, String serverPath, String serverName -> tasks.register(taskName, Copy) { group = 'deployment' description = "构建并部署插件到本地 ${serverName} 测试服务器。" def artifact = tasks.named('shadowJar').flatMap { it.archiveFile } def pluginsDir = layout.projectDirectory.dir("${serverPath}/plugins") dependsOn(tasks.named('shadowJar')) from(artifact) into(pluginsDir) doFirst { delete(fileTree(pluginsDir) { include 'EssentialsC*.jar' }) delete(pluginsDir.file('EssentialsC').asFile) } } } registerTestServerDeployTask('deployToPaper12111', 'test-server/paper-1.21.11', 'Paper 1.21.11') registerTestServerDeployTask('deployToPaper2612', 'test-server/paper-26.1.2', 'Paper 26.1.2')