untitled paste

unlisted ⁨1⁩ ⁨file⁩ 2022-03-11 13:15:58 UTC

build.gradle

Raw
//file:noinspection SpellCheckingInspection
plugins {
    id 'java'
    id 'com.github.johnrengelman.shadow' version '7.1.2'
}

group = 'com.teamyomi'
version = '2.0.0'

repositories {
    mavenCentral()
    maven { url = 'https://jitpack.io' }
    maven { url = 'https://papermc.io/repo/repository/maven-public/' }
    maven { url = 'https://oss.sonatype.org/content/groups/public/' }
    maven { url = 'https://libraries.minecraft.net' }
    maven { url = 'https://repo.aikar.co/content/groups/aikar/' }
    maven { url = 'https://repo.pcgamingfreaks.at/repository/maven-everything' }
}

dependencies {
    implementation('com.j256.ormlite:ormlite-core:6.1') // ORMLite
    implementation('net.dv8tion:JDA:5.0.0-alpha.9') { exclude module: 'opus-java' } // JDA
    compileOnly('org.slf4j:slf4j-api:1.7.36') // SLF4J for JDA
    implementation('org.apache.logging.log4j:log4j-slf4j-impl:2.17.2') // Log4j 2 SLF4J Binding (for JDA)
    implementation('co.aikar:acf-paper:0.5.1-SNAPSHOT') // ACF
    compileOnly('org.xerial:sqlite-jdbc:3.36.0.3') // SQLite JDBC
    compileOnly('com.mojang:authlib:3.3.39') // Mojang Authlib
    compileOnly('io.papermc.paper:paper-api:1.18.2-R0.1-SNAPSHOT') // Paper API
    compileOnly('at.pcgamingfreaks:Minepacks-API:2.4.5.1') // Minepacks API (included in plugin JAR)
    compileOnly('com.github.MilkBowl:VaultAPI:1.7.1') // Vault API
}

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
    }

    options.encoding('UTF-8')
}

processResources {
    def props = [version: version]
    inputs.properties props
    filteringCharset 'UTF-8'
    filesMatching('plugin.yml') {
        expand props
    }
}

compileJava {
    options.encoding = 'UTF-8'

    options.compilerArgs += [ '-parameters' ] // Advised by ACF
    options.fork = true
    options.forkOptions.executable = 'javac'
}

shadowJar {
    // May contain libraries that no longer used by EXMCore but these are just rules
    relocate('ch.qos.logback', 'lib.logback')
    relocate('co.aikar.commands', 'lib.acf')
    relocate('co.aikar.locales', 'lib.acf.locales')
    relocate('com.fasterxml.jackson', 'lib.jackson')
    relocate('com.iwebpp.crypto', 'lib.crypto')
    relocate('com.j256.ormlite', 'lib.ormlite')
    relocate('com.neovisionaries.ws.client', 'lib.wsclient')
    relocate('gnu.trove', 'lib.trove')
    relocate('io.vavr', 'lib.vavr')
    relocate('javax.annotation', 'lib.annotation.javax')
    relocate('net.dv8tion.jda', 'lib.jda')
    relocate('okhttp3', 'lib.okhttp3')
    relocate('okio', 'lib.okio')
    relocate('org.apache.commons.collections4', 'lib.collections4')
    relocate('org.apache.logging.log4j', 'lib.log4j')
    relocate('org.apache.logging.slf4j', 'lib.slf4j')
    relocate('org.bouncycastle', 'lib.bouncycastle')
    relocate('org.intellij.lang.annotation', 'lib.annotation.intellij')
    relocate('org.javacord', 'lib.javacord')
    relocate('org.jetbrains.annotations', 'lib.annotation.jetbrains')
    relocate('org.slf4j', 'lib.slf4j')

    //minimize()
}
jar.finalizedBy(shadowJar)