Files
Plex/server/build.gradle.kts
T
2026-05-28 13:50:25 -04:00

153 lines
4.9 KiB
Kotlin

import net.minecrell.pluginyml.paper.PaperPluginDescription
import java.text.SimpleDateFormat
import java.util.*
val paperApiVersion = "26.1.2"
plugins {
java
id("org.jetbrains.gradle.plugin.idea-ext")
id("net.kyori.blossom")
id("com.gradleup.shadow")
id("net.kyori.indra.git") version "4.0.0"
id("de.eldoria.plugin-yml.paper") version "0.9.0"
}
repositories {
maven(url = uri("https://maven.playpro.com"))
maven(url = uri("https://nexus.telesphoreo.me/repository/plex-modules/"))
maven(url = uri("https://nexus.prism-mc.org/repository/maven-snapshots/"))
}
dependencies {
implementation(project(":api"))
library("org.projectlombok:lombok:1.18.46")
library("commons-io:commons-io:2.22.0")
library("redis.clients:jedis:7.5.0")
library("org.mariadb.jdbc:mariadb-java-client:3.5.8")
library("org.postgresql:postgresql:42.7.11")
library("org.xerial:sqlite-jdbc:3.53.1.0")
library("com.zaxxer:HikariCP:7.0.2")
library("com.j256.ormlite:ormlite-core:6.1")
library("com.j256.ormlite:ormlite-jdbc:6.1")
library("org.jetbrains:annotations:26.1.0")
compileOnly("io.papermc.paper:paper-api:${paperApiVersion}.build.+")
compileOnly("com.github.MilkBowl:VaultAPI:1.7.1") {
exclude("org.bukkit", "bukkit")
}
compileOnly("net.coreprotect:coreprotect:23.2")
compileOnly("org.prism_mc.prism:prism-paper-api:4.3-SNAPSHOT")
compileOnly("com.github.LeonMangler:SuperVanish:6.2.19")
implementation("org.bstats:bstats-base:3.2.1")
implementation("org.bstats:bstats-bukkit:3.2.1")
annotationProcessor("org.projectlombok:lombok:1.18.46")
}
group = rootProject.group
version = rootProject.version
description = "Plex-Server"
paper {
name = "Plex"
version = rootProject.version.toString()
description = "Plex provides a new experience for freedom servers."
main = "dev.plex.Plex"
loader = "dev.plex.PlexLibraryManager"
website = "https://plex.us.org"
authors = listOf("Telesphoreo", "taahanis", "supernt")
apiVersion = paperApiVersion
foliaSupported = true
generateLibrariesJson = true
// Load BukkitTelnet and LibsDisguises before Plex so the modules register properly
serverDependencies {
register("BukkitTelnet") {
required = false
load = PaperPluginDescription.RelativeLoadOrder.BEFORE
}
register("Essentials") {
required = false
load = PaperPluginDescription.RelativeLoadOrder.BEFORE
}
register("LibsDisguises") {
required = false
load = PaperPluginDescription.RelativeLoadOrder.BEFORE
}
register("prism") {
required = false
load = PaperPluginDescription.RelativeLoadOrder.BEFORE
}
register("CoreProtect") {
required = false
load = PaperPluginDescription.RelativeLoadOrder.BEFORE
}
register("SuperVanish") {
required = false
load = PaperPluginDescription.RelativeLoadOrder.BEFORE
}
register("PremiumVanish") {
required = false
load = PaperPluginDescription.RelativeLoadOrder.BEFORE
}
// For the HTTPD
register("NBTAPI") {
required = false
joinClasspath = true
load = PaperPluginDescription.RelativeLoadOrder.BEFORE
}
register("Vault") {
required = false
load = PaperPluginDescription.RelativeLoadOrder.BEFORE
}
}
}
fun getBuildNumber(): String {
return try {
providers.exec {
commandLine("git", "rev-list", "HEAD", "--count")
}.standardOutput.asText.get().trim()
} catch (e: GradleException) {
logger.error("Couldn't determine build number because Git is not installed. " + e.message)
"unknown"
}
}
tasks {
build {
dependsOn(shadowJar)
}
generatePaperPluginDescription {
useGoogleMavenCentralProxy()
}
jar {
enabled = false
}
sourceSets {
main {
blossom {
resources {
property("author", if (System.getenv("JENKINS_URL") != null) "jenkins" else System.getProperty("user.name"))
property("buildNumber", if (System.getenv("BUILD_NUMBER") != null) System.getenv("BUILD_NUMBER") else getBuildNumber())
property("date", SimpleDateFormat("MM/dd/yyyy '<light_purple>at<gold>' hh:mm:ss a z").format(Date()))
property("gitCommit", indraGit.commit().get().name)
property("minecraftVersion", paperApiVersion)
}
}
}
}
shadowJar {
archiveBaseName.set("Plex")
archiveClassifier.set("")
relocate("org.bstats", "dev.plex")
finalizedBy(rootProject.tasks["copyJars"])
}
javadoc {
options.memberLevel = JavadocMemberLevel.PRIVATE
}
}