mirror of
https://github.com/WiIIiam278/Velocitab.git
synced 2025-03-13 13:30:01 +01:00
* First step for 1.21.2 * fix * feat: start preparing 1.21.2 support bumps gradle and various build deps * build: now requires Velocity 3.4.0 * build: use Velocity 3.4.0 from maven * refactor: cleanup, fix wrong protocol ver in 765 * refactor: minor code cleanup & reformat * refactor: further code cleanup * refactor: more minor refactoring work * docs: document prerequisites for using the plugin message API * Fixed team packet mapping problem Fixed problems with SortingOrder packet Changed scoreboard logic to skip team packets for 1.21.2+ players if nametag is empty * docs: further grammar fixes to plugin message API docs * refactor: adjust PPB version checking logic * build: simplify PPB test logic * refactor: remove unused code * refactor: adjust formatting * refactor: make nametag empty by default * refactor: suppress warning * fix: `ConfigurationException` deserializing minimum PPB version string * refactor: remove unused import * Bug fixes * Removed tablist order from all TabPlayer instances when a player leaves * Fixed problem with data structure * Removed synchronized * fix: subscriber order not taking effect * refactor: minor code style tweaks --------- Co-authored-by: AlexDev_ <56083016+alexdev03@users.noreply.github.com>
192 lines
6.3 KiB
Groovy
192 lines
6.3 KiB
Groovy
import org.apache.tools.ant.filters.ReplaceTokens
|
|
|
|
plugins {
|
|
id 'xyz.jpenilla.run-velocity' version '2.3.1'
|
|
id 'com.gradleup.shadow' version '8.3.3'
|
|
id 'org.cadixdev.licenser' version '0.6.1'
|
|
id 'org.ajoberstar.grgit' version '5.3.0'
|
|
id 'maven-publish'
|
|
id 'java'
|
|
}
|
|
|
|
group 'net.william278'
|
|
version "$ext.plugin_version"
|
|
description "$ext.plugin_description"
|
|
defaultTasks 'licenseFormat', 'build'
|
|
|
|
ext {
|
|
set 'version', version.toString()
|
|
set 'description', description.toString()
|
|
|
|
set 'velocity_api_version', velocity_api_version.toString()
|
|
set 'velocity_minimum_build', velocity_minimum_build.toString()
|
|
set 'papi_proxy_bridge_minimum_version', papi_proxy_bridge_minimum_version.toString()
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
maven { url = 'https://repo.william278.net/velocity/' }
|
|
maven { url = 'https://repo.william278.net/releases/' }
|
|
maven { url = 'https://repo.william278.net/snapshots/' }
|
|
maven { url = 'https://repo.papermc.io/repository/maven-public/' }
|
|
maven { url = 'https://repo.minebench.de/' }
|
|
maven { url = 'https://jitpack.io' }
|
|
}
|
|
|
|
dependencies {
|
|
compileOnly "com.velocitypowered:velocity-api:${velocity_api_version}-SNAPSHOT"
|
|
compileOnly "com.velocitypowered:velocity-proxy:${velocity_api_version}-SNAPSHOT"
|
|
|
|
compileOnly 'io.netty:netty-codec-http:4.1.114.Final'
|
|
compileOnly 'org.projectlombok:lombok:1.18.34'
|
|
compileOnly 'net.luckperms:api:5.4'
|
|
compileOnly 'io.github.miniplaceholders:miniplaceholders-api:2.2.3'
|
|
compileOnly 'net.william278:papiproxybridge:1.6.2'
|
|
compileOnly 'it.unimi.dsi:fastutil:8.5.14'
|
|
compileOnly 'net.kyori:adventure-nbt:4.17.0'
|
|
|
|
implementation 'org.apache.commons:commons-text:1.12.0'
|
|
implementation 'net.william278:desertwell:2.0.4'
|
|
implementation 'net.william278:minedown:1.8.2'
|
|
implementation 'org.bstats:bstats-velocity:3.1.0'
|
|
implementation 'de.exlll:configlib-yaml:4.5.0'
|
|
implementation 'org.apache.commons:commons-jexl3:3.4.0'
|
|
implementation 'net.jodah:expiringmap:0.5.11'
|
|
|
|
annotationProcessor 'org.projectlombok:lombok:1.18.34'
|
|
}
|
|
|
|
processResources {
|
|
def tokenMap = rootProject.ext.properties
|
|
tokenMap.merge("grgit",'',(s, s2) -> s)
|
|
filesMatching(['**/*.json', '**/*.yml']) {
|
|
filter ReplaceTokens as Class, beginToken: '${', endToken: '}',
|
|
tokens: tokenMap
|
|
}
|
|
}
|
|
|
|
license {
|
|
header = rootProject.file('HEADER')
|
|
include '**/*.java'
|
|
newLine = true
|
|
}
|
|
|
|
logger.lifecycle("Building Velocitab ${version} by William278")
|
|
version rootProject.version
|
|
archivesBaseName = "${rootProject.name}"
|
|
|
|
compileJava.options.encoding = 'UTF-8'
|
|
javadoc.options.encoding = 'UTF-8'
|
|
javadoc.options.addStringOption('Xdoclint:none', '-quiet')
|
|
|
|
java {
|
|
def javaVersion = JavaVersion.toVersion(javaVersion)
|
|
sourceCompatibility = javaVersion
|
|
targetCompatibility = javaVersion
|
|
withSourcesJar()
|
|
withJavadocJar()
|
|
}
|
|
|
|
shadowJar {
|
|
relocate 'org.apache.commons.text', 'net.william278.velocitab.libraries.commons.text'
|
|
relocate 'org.apache.commons.lang3', 'net.william278.velocitab.libraries.commons.lang3'
|
|
relocate 'org.jetbrains', 'net.william278.velocitab.libraries'
|
|
relocate 'org.intellij', 'net.william278.velocitab.libraries'
|
|
relocate 'de.themoep', 'net.william278.velocitab.libraries'
|
|
relocate 'net.william278.annotaml', 'net.william278.velocitab.libraries.annotaml'
|
|
relocate 'net.william278.desertwell', 'net.william278.velocitab.libraries.desertwell'
|
|
relocate 'org.bstats', 'net.william278.velocitab.libraries.bstats'
|
|
relocate 'de.exlll.configlib', 'net.william278.velocitab.libraries.configlib'
|
|
relocate 'org.snakeyaml', 'net.william278.velocitab.libraries.snakeyaml'
|
|
relocate 'org.apache.commons.jexl3', 'net.william278.velocitab.libraries.commons.jexl3'
|
|
relocate 'org.apache.commons.logging', 'net.william278.velocitab.libraries.commons.logging'
|
|
relocate 'net.jodah.expiringmap', 'net.william278.velocitab.libraries.expiringmap'
|
|
|
|
dependencies {
|
|
exclude dependency(':slf4j-api')
|
|
exclude dependency('org.json:json')
|
|
}
|
|
|
|
destinationDirectory.set(file("$rootDir/target"))
|
|
archiveClassifier.set('')
|
|
|
|
minimize() {
|
|
exclude dependency('commons-logging:commons-logging')
|
|
}
|
|
}
|
|
jar.dependsOn shadowJar
|
|
clean.delete "$rootDir/target"
|
|
|
|
publishing {
|
|
repositories {
|
|
if (System.getenv("RELEASES_MAVEN_USERNAME") != null) {
|
|
maven {
|
|
name = "william278-releases"
|
|
url = "https://repo.william278.net/releases"
|
|
credentials {
|
|
username = System.getenv("RELEASES_MAVEN_USERNAME")
|
|
password = System.getenv("RELEASES_MAVEN_PASSWORD")
|
|
}
|
|
authentication {
|
|
basic(BasicAuthentication)
|
|
}
|
|
}
|
|
}
|
|
if (System.getenv("SNAPSHOTS_MAVEN_USERNAME") != null) {
|
|
maven {
|
|
name = "william278-snapshots"
|
|
url = "https://repo.william278.net/snapshots"
|
|
credentials {
|
|
username = System.getenv("SNAPSHOTS_MAVEN_USERNAME")
|
|
password = System.getenv("SNAPSHOTS_MAVEN_PASSWORD")
|
|
}
|
|
authentication {
|
|
basic(BasicAuthentication)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
publications {
|
|
mavenJava(MavenPublication) {
|
|
groupId = 'net.william278'
|
|
artifactId = 'velocitab'
|
|
version = "$rootProject.version"
|
|
artifact shadowJar
|
|
artifact javadocJar
|
|
artifact sourcesJar
|
|
}
|
|
}
|
|
}
|
|
|
|
tasks {
|
|
var papi = papi_proxy_bridge_minimum_version
|
|
runVelocity {
|
|
velocityVersion("${velocity_api_version}-SNAPSHOT")
|
|
|
|
downloadPlugins {
|
|
modrinth ("papiproxybridge", papi)
|
|
modrinth ("miniplaceholders", "2.2.4")
|
|
}
|
|
}
|
|
}
|
|
|
|
@SuppressWarnings('GrMethodMayBeStatic')
|
|
def versionMetadata() {
|
|
// Require grgit
|
|
if (grgit == null) {
|
|
return '-unknown'
|
|
}
|
|
|
|
// If unclean, return the last commit hash with -indev
|
|
if (!grgit.status().clean) {
|
|
return '-' + grgit.head().abbreviatedId + '-indev'
|
|
}
|
|
|
|
// Otherwise if this matches a tag, return nothing
|
|
def tag = grgit.tag.list().find { it.commit.id == grgit.head().id }
|
|
if (tag != null) {
|
|
return ''
|
|
}
|
|
return '-' + grgit.head().abbreviatedId
|
|
} |