mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-17 17:54:05 +00:00
198 lines
6.9 KiB
Groovy
198 lines
6.9 KiB
Groovy
/*
|
|
* Iris is a World Generator for Minecraft Bukkit Servers
|
|
* Copyright (c) 2021 Arcane Arts (Volmit Software)
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
*/
|
|
plugins {
|
|
id 'java'
|
|
id 'io.freefair.lombok' version '5.2.1'
|
|
id "com.github.johnrengelman.shadow" version "7.0.0"
|
|
}
|
|
|
|
group 'com.volmit.iris'
|
|
version '1.9'
|
|
def apiVersion = '1.17'
|
|
def name = getRootProject().getName() // Defined in settings.gradle
|
|
def main = 'com.volmit.iris.Iris'
|
|
|
|
// ADD YOURSELF AS A NEW LINE IF YOU WANT YOUR OWN BUILD TASK GENERATED
|
|
// ==============================================================
|
|
registerCustomOutputTask('Cyberpwn', 'C://Users/cyberpwn/Documents/development/server/plugins', name)
|
|
registerCustomOutputTask('Psycho', 'D://Dan/MinecraftDevelopment/server/plugins', name)
|
|
registerCustomOutputTask('ArcaneArts', 'C://Users/arcane/Documents/development/server/plugins', name)
|
|
registerCustomOutputTask('Coco', 'C://Users/sjoer/Desktop/MCSM/plugins', name)
|
|
registerCustomOutputTask('Strange', 'D://Servers/1.17 Test Server/plugins', name)
|
|
// ==============================================================
|
|
|
|
def registerCustomOutputTask(name, path, plugin) {
|
|
tasks.register('build' + name, Copy) {
|
|
group('development')
|
|
outputs.upToDateWhen { false }
|
|
dependsOn ':shadowJar'
|
|
from(file('build/libs/' + plugin + '-' + version + '-all.jar'))
|
|
into(file(path))
|
|
rename { String fileName ->
|
|
fileName.replace(plugin + '-' + version + '-all.jar', plugin + ".jar")
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Gradle is weird sometimes, we need to delete the plugin yml from the build folder to actually filter properly.
|
|
*/
|
|
file(jar.archiveFile.get().getAsFile().getParentFile().getParentFile().getParentFile().getAbsolutePath() + '/build/resources/main/plugin.yml').delete()
|
|
|
|
/**
|
|
* Expand properties into plugin yml
|
|
*/
|
|
processResources {
|
|
filesMatching('**/plugin.yml') {
|
|
expand(
|
|
'name': name.toString(),
|
|
'version': version.toString(),
|
|
'main': main.toString(),
|
|
'apiversion': apiVersion.toString()
|
|
)
|
|
}
|
|
}
|
|
|
|
/**
|
|
* For performance during compilation, we specify which module groups are accessible from which repositories
|
|
* This may cause issues resolving new dependencies but normally it shouldn't.
|
|
*/
|
|
repositories {
|
|
maven {
|
|
url 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/'
|
|
content {
|
|
includeGroup 'org.spigotmc'
|
|
}
|
|
}
|
|
maven {
|
|
url 'https://papermc.io/repo/repository/maven-public/'
|
|
content {
|
|
includeGroup 'io.papermc'
|
|
}
|
|
}
|
|
maven {
|
|
url 'https://repo.extendedclip.com/content/repositories/placeholderapi/'
|
|
content {
|
|
includeGroup 'me.clip'
|
|
}
|
|
}
|
|
maven {
|
|
url 'https://oss.sonatype.org/content/repositories/snapshots/'
|
|
content {
|
|
includeGroup 'net.kyori'
|
|
}
|
|
}
|
|
maven {
|
|
url 'https://repo.jeff-media.de/maven2'
|
|
content {
|
|
includeGroup 'de.jeff_media'
|
|
}
|
|
}
|
|
maven { url 'https://jitpack.io' }
|
|
maven {
|
|
url 'https://repo.codemc.io/repository/maven-releases'
|
|
content {
|
|
includeGroup 'com.dfsek'
|
|
}
|
|
}
|
|
mavenCentral()
|
|
mavenLocal()
|
|
maven {
|
|
allowInsecureProtocol true
|
|
url 'http://archive.arcane.art/repository/arcane'
|
|
content {
|
|
includeGroup 'org.bukkit.craftbukkit'
|
|
includeGroup 'io.th0rgal'
|
|
}
|
|
}
|
|
|
|
// Uncomment this line if the build is failing because of missing dependencies
|
|
// Its slow but it will resolve any cached dependencies until we can find an alternative repo
|
|
// maven { allowInsecureProtocol true, url 'http://archive.arcane.art/repository/arcane'}
|
|
}
|
|
|
|
/**
|
|
* We need parameter meta for the decree command system
|
|
*/
|
|
compileJava {
|
|
options.compilerArgs << '-parameters'
|
|
}
|
|
|
|
/**
|
|
* Configure Iris for shading
|
|
*/
|
|
shadowJar {
|
|
minimize()
|
|
append("plugin.yml")
|
|
relocate 'com.dfsek.paralithic', 'com.volmit.iris.util.paralithic'
|
|
relocate 'io.papermc.lib', 'com.volmit.iris.util.paper'
|
|
relocate 'net.kyori', 'com.volmit.iris.util.kyori'
|
|
dependencies {
|
|
include(dependency('io.papermc:paperlib'))
|
|
include(dependency('com.dfsek:Paralithic'))
|
|
include(dependency('net.kyori:'))
|
|
}
|
|
}
|
|
|
|
configurations.all {
|
|
resolutionStrategy.cacheChangingModulesFor 60, 'minutes'
|
|
resolutionStrategy.cacheDynamicVersionsFor 60, 'minutes'
|
|
}
|
|
|
|
/**
|
|
* Dependencies.
|
|
*
|
|
* Provided or classpath dependencies are not shaded and are available on the runtime classpath
|
|
*
|
|
* Shaded dependencies are not available at runtime, nor are they available on mvn central so they
|
|
* need to be shaded into the jar (increasing binary size)
|
|
*
|
|
* Dynamically loaded dependencies are defined in the plugin.yml (updating these must be updated in the
|
|
* plugin.yml also, otherwise they wont be available). These do not increase binary size). Only declare
|
|
* these dependencies if they are available on mvn central.
|
|
*/
|
|
dependencies {
|
|
// Provided or Classpath
|
|
compileOnly 'org.projectlombok:lombok:1.18.20'
|
|
annotationProcessor 'org.projectlombok:lombok:1.18.20'
|
|
implementation 'org.spigotmc:spigot-api:1.17.1-R0.1-SNAPSHOT'
|
|
implementation 'org.bukkit.craftbukkit:1.17.1:1.17.1'
|
|
implementation 'me.clip:placeholderapi:2.10.10'
|
|
implementation 'io.th0rgal:oraxen:1.94.0'
|
|
|
|
// Shaded
|
|
implementation 'com.dfsek:Paralithic:0.4.0'
|
|
implementation 'io.papermc:paperlib:1.0.5'
|
|
implementation "net.kyori:adventure-text-minimessage:4.2.0-SNAPSHOT"
|
|
implementation "net.kyori:adventure-platform-bukkit:4.0.0-SNAPSHOT"
|
|
implementation 'net.kyori:adventure-api:4.9.1'
|
|
|
|
// Dynamically Loaded
|
|
implementation 'io.timeandspace:smoothie-map:2.0.2'
|
|
implementation 'it.unimi.dsi:fastutil:8.5.4'
|
|
implementation 'com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:1.4.2'
|
|
implementation 'org.zeroturnaround:zt-zip:1.14'
|
|
implementation 'com.google.code.gson:gson:2.8.8'
|
|
implementation 'org.ow2.asm:asm:9.2'
|
|
implementation 'com.google.guava:guava:30.1.1-jre'
|
|
implementation 'bsf:bsf:2.4.0'
|
|
implementation 'rhino:js:1.7R2'
|
|
implementation 'com.github.ben-manes.caffeine:caffeine:3.0.3'
|
|
implementation 'org.apache.commons:commons-lang3:3.12.0'
|
|
}
|