Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- plugins {
- id 'java'
- id 'java-gradle-plugin'
- id "com.gradle.plugin-publish" version "1.1.0"
- id("maven-publish")
- id("io.papermc.paperweight.userdev") version "1.5.5"
- id("xyz.jpenilla.run-paper") version "2.2.0"
- }
- gradlePlugin {
- plugins {
- myPlugin {
- id = 'genesismc'
- implementationClass = 'me.dueris.genesismc.GenesisMC'
- }
- }
- }
- gradlePlugin {
- plugins {
- myPlugin {
- displayName = 'GenesisMC'
- }
- }
- }
- pluginBundle {
- website = 'https://github.com/Dueris/GenesisMC'
- vcsUrl = 'https://github.com/Dueris/GenesisMC'
- description = 'Origins plugin for PaperMC and forks'
- plugins {
- myPlugin {
- displayName = 'GenesisMC'
- }
- }
- }
- apply plugin: 'java'
- apply plugin: 'maven-publish'
- group = 'me.dueris'
- version = 'mc1.20-v0.2.2'
- sourceCompatibility = JavaVersion.VERSION_17
- targetCompatibility = JavaVersion.VERSION_17
- repositories {
- mavenCentral()
- maven {
- url = "https://mvnrepository.com/artifact/org.javassist/javassist"
- }
- maven {
- name = "papermc-repo"
- url = "https://repo.papermc.io/repository/maven-public/"
- }
- maven {
- name = "sonatype"
- url = "https://oss.sonatype.org/content/groups/public/"
- }
- maven {
- name = "opencollab-snapshot-repo"
- url = "https://repo.opencollab.dev/main/"
- }
- maven { url 'https://repo.inventivetalent.org/repository/public/' }
- maven {
- url = "https://repo.codemc.org/repository/maven-releases/"
- }
- maven { url = "https://jitpack.io"}
- maven { url = "https://repo.spongepowered.org/repository/maven-public/"}
- }
- java {
- toolchain.languageVersion.set(JavaLanguageVersion.of(17))
- }
- configurations {
- shade
- }
- dependencies {
- paperweight.paperDevBundle("1.20.2-R0.1-SNAPSHOT")
- compileOnly("io.papermc.paperweight:paperweight-userdev:1.3.6")
- compileOnly("org.geysermc.geyser:api:2.1.0-SNAPSHOT")
- compileOnly("org.geysermc.floodgate:api:2.0-SNAPSHOT")
- implementation("net.skinsrestorer:skinsrestorer-api:14.2.12")
- compileOnly "org.mineskin:java-client:1.2.4-SNAPSHOT"
- shade("org.mineskin:java-client:1.2.4-SNAPSHOT")
- implementation("org.reflections:reflections:0.9.12")
- shade("org.reflections:reflections:0.9.12")
- implementation("org.javassist:javassist:3.15.0-GA")
- shade("org.javassist:javassist:3.15.0-GA")
- compileOnly("org.spongepowered:mixin:0.8.5-SNAPSHOT")
- compileOnly("space.vectrix.ignite:ignite-api:0.8.1")
- }
- jar {
- duplicatesStrategy(DuplicatesStrategy.EXCLUDE)
- includeEmptyDirs = false
- from {
- configurations.shade.collect { it.isDirectory() ? it : zipTree(it) }
- }
- }
- task copyToLib(type: Copy, dependsOn: [jar, reobfJar]) {
- duplicatesStrategy = DuplicatesStrategy.INHERIT // Specify the duplicatesStrategy directly
- from 'build/libs'
- into '../build/libs'
- include '**/*.jar'
- rename { fileName ->
- fileName.replace("mainPlugin", "genesis-standalone")
- }
- }
- tasks {
- // Configure reobfJar to run when invoking the build task
- assemble {
- dependsOn(reobfJar)
- }
- }
- task copyJarToBundled(type: Copy, dependsOn: [jar, ':mainPlugin:reobfJar']) {
- // Disable state tracking for this task
- from jar.archivePath
- into '../mixin/src/main/resources'
- logger.info("Copying standalone jar...")
- }
- // Configure the "buildBundled" task to depend on the "build" task of Project B
- task buildBundled(dependsOn: [':mixin:build', copyJarToBundled, copyToLib]) {
- group = 'custom'
- description = 'Build Project B with the copied JAR from Project A'
- logger.info("Running build for bundled...")
- }
- def targetJavaVersion = 17
- java {
- def javaVersion = JavaVersion.toVersion(targetJavaVersion)
- sourceCompatibility = javaVersion
- targetCompatibility = javaVersion
- if (JavaVersion.current() < javaVersion) {
- toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion)
- }
- }
- tasks.withType(JavaCompile).configureEach {
- if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) {
- options.release = targetJavaVersion
- }
- }
- processResources {
- def props = [version: version]
- inputs.properties props
- filteringCharset 'UTF-8'
- filesMatching('plugin.yml') {
- expand props
- }
- }
- publishing {
- publications {
- maven(MavenPublication) {
- from components.java
- }
- }
- repositories {
- mavenLocal()
- }
- }
- build.dependsOn jar, copyToLib
Advertisement
Add Comment
Please, Sign In to add comment