build.gradle
@@ -0,0 +1,94 @@
+//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)