Guest User

Untitled

a guest
Oct 4th, 2023
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.63 KB | None | 0 0
  1. plugins {
  2. id 'java'
  3. id 'java-gradle-plugin'
  4. id "com.gradle.plugin-publish" version "1.1.0"
  5. id("maven-publish")
  6. id("io.papermc.paperweight.userdev") version "1.5.5"
  7. id("xyz.jpenilla.run-paper") version "2.2.0"
  8. }
  9.  
  10. gradlePlugin {
  11. plugins {
  12. myPlugin {
  13. id = 'genesismc'
  14. implementationClass = 'me.dueris.genesismc.GenesisMC'
  15. }
  16. }
  17. }
  18.  
  19. gradlePlugin {
  20. plugins {
  21. myPlugin {
  22. displayName = 'GenesisMC'
  23. }
  24. }
  25. }
  26.  
  27. pluginBundle {
  28. website = 'https://github.com/Dueris/GenesisMC'
  29. vcsUrl = 'https://github.com/Dueris/GenesisMC'
  30. description = 'Origins plugin for PaperMC and forks'
  31.  
  32. plugins {
  33. myPlugin {
  34. displayName = 'GenesisMC'
  35. }
  36. }
  37. }
  38.  
  39. apply plugin: 'java'
  40. apply plugin: 'maven-publish'
  41. group = 'me.dueris'
  42. version = 'mc1.20-v0.2.2'
  43.  
  44. sourceCompatibility = JavaVersion.VERSION_17
  45. targetCompatibility = JavaVersion.VERSION_17
  46.  
  47. repositories {
  48. mavenCentral()
  49. maven {
  50. url = "https://mvnrepository.com/artifact/org.javassist/javassist"
  51. }
  52. maven {
  53. name = "papermc-repo"
  54. url = "https://repo.papermc.io/repository/maven-public/"
  55. }
  56. maven {
  57. name = "sonatype"
  58. url = "https://oss.sonatype.org/content/groups/public/"
  59. }
  60. maven {
  61. name = "opencollab-snapshot-repo"
  62. url = "https://repo.opencollab.dev/main/"
  63. }
  64. maven { url 'https://repo.inventivetalent.org/repository/public/' }
  65. maven {
  66. url = "https://repo.codemc.org/repository/maven-releases/"
  67. }
  68. maven { url = "https://jitpack.io"}
  69. maven { url = "https://repo.spongepowered.org/repository/maven-public/"}
  70. }
  71.  
  72. java {
  73. toolchain.languageVersion.set(JavaLanguageVersion.of(17))
  74. }
  75.  
  76. configurations {
  77. shade
  78. }
  79.  
  80. dependencies {
  81. paperweight.paperDevBundle("1.20.2-R0.1-SNAPSHOT")
  82. compileOnly("io.papermc.paperweight:paperweight-userdev:1.3.6")
  83. compileOnly("org.geysermc.geyser:api:2.1.0-SNAPSHOT")
  84. compileOnly("org.geysermc.floodgate:api:2.0-SNAPSHOT")
  85. implementation("net.skinsrestorer:skinsrestorer-api:14.2.12")
  86. compileOnly "org.mineskin:java-client:1.2.4-SNAPSHOT"
  87. shade("org.mineskin:java-client:1.2.4-SNAPSHOT")
  88. implementation("org.reflections:reflections:0.9.12")
  89. shade("org.reflections:reflections:0.9.12")
  90. implementation("org.javassist:javassist:3.15.0-GA")
  91. shade("org.javassist:javassist:3.15.0-GA")
  92. compileOnly("org.spongepowered:mixin:0.8.5-SNAPSHOT")
  93. compileOnly("space.vectrix.ignite:ignite-api:0.8.1")
  94. }
  95.  
  96. jar {
  97. duplicatesStrategy(DuplicatesStrategy.EXCLUDE)
  98. includeEmptyDirs = false
  99.  
  100. from {
  101. configurations.shade.collect { it.isDirectory() ? it : zipTree(it) }
  102. }
  103. }
  104.  
  105. task copyToLib(type: Copy, dependsOn: [jar, reobfJar]) {
  106. duplicatesStrategy = DuplicatesStrategy.INHERIT // Specify the duplicatesStrategy directly
  107. from 'build/libs'
  108. into '../build/libs'
  109. include '**/*.jar'
  110. rename { fileName ->
  111. fileName.replace("mainPlugin", "genesis-standalone")
  112. }
  113. }
  114.  
  115. tasks {
  116. // Configure reobfJar to run when invoking the build task
  117. assemble {
  118. dependsOn(reobfJar)
  119. }
  120. }
  121.  
  122. task copyJarToBundled(type: Copy, dependsOn: [jar, ':mainPlugin:reobfJar']) {
  123. // Disable state tracking for this task
  124.  
  125. from jar.archivePath
  126. into '../mixin/src/main/resources'
  127. logger.info("Copying standalone jar...")
  128. }
  129.  
  130.  
  131. // Configure the "buildBundled" task to depend on the "build" task of Project B
  132. task buildBundled(dependsOn: [':mixin:build', copyJarToBundled, copyToLib]) {
  133. group = 'custom'
  134. description = 'Build Project B with the copied JAR from Project A'
  135. logger.info("Running build for bundled...")
  136. }
  137.  
  138. def targetJavaVersion = 17
  139. java {
  140. def javaVersion = JavaVersion.toVersion(targetJavaVersion)
  141. sourceCompatibility = javaVersion
  142. targetCompatibility = javaVersion
  143. if (JavaVersion.current() < javaVersion) {
  144. toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion)
  145. }
  146. }
  147.  
  148. tasks.withType(JavaCompile).configureEach {
  149. if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) {
  150. options.release = targetJavaVersion
  151. }
  152. }
  153.  
  154. processResources {
  155. def props = [version: version]
  156. inputs.properties props
  157. filteringCharset 'UTF-8'
  158. filesMatching('plugin.yml') {
  159. expand props
  160. }
  161. }
  162.  
  163. publishing {
  164. publications {
  165. maven(MavenPublication) {
  166. from components.java
  167. }
  168. }
  169. repositories {
  170. mavenLocal()
  171. }
  172. }
  173.  
  174. build.dependsOn jar, copyToLib
  175.  
Advertisement
Add Comment
Please, Sign In to add comment