|
|
|
import org.apache.tools.ant.filters.ReplaceTokens
|
|
|
|
|
|
|
|
plugins {
|
|
|
|
id 'com.github.johnrengelman.shadow' version '8.1.1'
|
|
|
|
id 'org.cadixdev.licenser' version '0.6.1' apply false
|
|
|
|
id 'org.ajoberstar.grgit' version '5.2.2'
|
|
|
|
id 'maven-publish'
|
|
|
|
id 'java'
|
|
|
|
}
|
|
|
|
|
|
|
|
group 'net.william278'
|
|
|
|
version "$ext.plugin_version${versionMetadata()}"
|
|
|
|
description "$ext.plugin_description"
|
|
|
|
defaultTasks 'licenseFormat', 'build'
|
|
|
|
|
|
|
|
ext {
|
|
|
|
set 'version', version.toString()
|
|
|
|
set 'description', description.toString()
|
|
|
|
|
|
|
|
set 'jedis_version', jedis_version.toString()
|
|
|
|
set 'mysql_driver_version', mysql_driver_version.toString()
|
|
|
|
set 'mariadb_driver_version', mariadb_driver_version.toString()
|
|
|
|
set 'mongodb_driver_version', mongodb_driver_version.toString()
|
|
|
|
set 'snappy_version', snappy_version.toString()
|
|
|
|
}
|
|
|
|
|
|
|
|
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)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
allprojects {
|
|
|
|
apply plugin: 'com.github.johnrengelman.shadow'
|
|
|
|
apply plugin: 'org.cadixdev.licenser'
|
|
|
|
apply plugin: 'java'
|
|
|
|
|
|
|
|
compileJava.options.encoding = 'UTF-8'
|
|
|
|
compileJava.options.release.set 17
|
|
|
|
javadoc.options.encoding = 'UTF-8'
|
|
|
|
javadoc.options.addStringOption('Xdoclint:none', '-quiet')
|
|
|
|
|
|
|
|
repositories {
|
|
|
|
mavenLocal()
|
|
|
|
mavenCentral()
|
|
|
|
maven { url 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' }
|
v3.0: New modular, more compatible data format, new API, better UX (#160)
* Start work on v3
* More work on task scheduling
* Add comment to notification display slot
* Synchronise branches
* Use new HuskHomes-style task system
* Bump to 2.3
* Remove HuskSyncInitializationException.java
* Optimise database for MariaDB
* Update libraries, move some around
* Tweak command registration
* Remove dummyhusksync
* Fixup core synchronisation logic to use new task system
* Implement new event dispatch subsystem
* Remove last remaining future calls
* Remove `Event#fire()`
* Refactor startup process
* New command subsystem, more initialization improvements, locale fixes
* Update docs, tweak command perms
* Reduce task number during data setting
* add todo
* Start work on data format / serialization refactor
* More work on Bukkit impl
* More serialization work
* Fixes to serialization, data preview system
* Start legacy conversion skeleton
* Handle setting empty inventories
* Start on-the-fly legacy conversion work
* Add advancement conversion
* Rewrite advancement get / apply logic
* Start work on locked map persistence
* More map persistence work
* More work on map serialization
* Move around persistence logic
* Add testing suite
* Fix item synchronisation
* Finalize more reliable locked map persistence
* Remove deprecated method call
* remove sync feature enum
* Fix held item slot syncing
* Make data types modular and API-extensible
* Remove some excessive debugging, minor refactor
* Fixup date formatting, improve menu UIs
* Finish up legacy data converting
* Null safety in item stack serializaiton
* Fix relocation of nbtapi, update dumping docs
* Add v1/MPDB Migrators back in
* Fix pinning/unpinning data not working
* Consumer instead of Function for editing data
* Show file size in DataSnapshotOverview
* Fix getIdentifier always returning empty
* Re-add items and inventory GUI commands
* Improve config file, fixup data restoration
* Add min time between backups (more useful backups!)
* More work on backups
* Fixup backup rotation frequency
* Remove stdout debug print in `#getEventPriority`
* Improve sync complete locale logic, fix synchronization spelling
* Remove `static` on exception
* Use dedicated thread for Redis, properly unsubscribe
* Refactor `player` package -> `user`
* `PlayerDataHolder` -> `UserDataHolder`
* Make `StatisticsMap` public, but `@ApiStatus.Internal`
* Suppress unused warnings on `Data`
* Add option to disable Plan hook
* Decompress legacy data before converting
* Decompress bytes in fromBytes
* Check permission node before serving TAB suggestions
* Actually convert legacy item stack data
* Fix syntax errors
* Minor method refactor in items command
* Fixup case-sensitive parsing in HuskSync command
* Start API work
* More work on API, fix potion effects
* Fix cross-server, config formatting for auto-pinned issue
* Fix confusion with UserData command, update docs images
* Update commands docs
* More docs updating
* Fix sync feature enabled/disabled checking logic
* Fix `#isCustom()`
* Enable persistent_data syncing by default
* docs: update Sync-Features config snippet
* docs: correct typo in Sync Features
* More API work
* bukkit: slightly optimized schedulers
* More API work, various refactorings
* docs: Start new API docs
* bump dependencies
* Add some basic unit tests
* docs: Correct typos
* More docs work, annotate DB methods as `@Blocking`
* Encapsulate `RedisMessage`, minor optimisations
* api: Simplify `#getCurrentData`
* api: Simplify `editCurrentData`, using `ThrowingConsumers` for better error handling
* docs: More Data Snapshot API documenting
* docs: add TOC to Data Snapshot API page
* bukkit: Make data types extend BukkitData
* Move where custom data is stored, finish up Custom Data API docs
* Optimise imports
* Fix `data_manager_advancements_preview_remaining` locale
* Fix advancement and playtime previews
* Fix potion effect deserialization
* Make snapshot_backup_frequency default to 4, more error handling/logging
* docs: Add ToC to Custom Data API
* docs: Minor legacy API tweaks
* Remove some unneeded catch logic
* Suppress a few warnings
* Fix Effect constructor being supplied in wrong order
1 year ago
|
|
|
maven { url 'https://repo.codemc.io/repository/maven-public/' }
|
|
|
|
maven { url 'https://repo.minebench.de/' }
|
|
|
|
maven { url 'https://repo.alessiodp.com/releases/' }
|
|
|
|
maven { url 'https://jitpack.io' }
|
v3.0: New modular, more compatible data format, new API, better UX (#160)
* Start work on v3
* More work on task scheduling
* Add comment to notification display slot
* Synchronise branches
* Use new HuskHomes-style task system
* Bump to 2.3
* Remove HuskSyncInitializationException.java
* Optimise database for MariaDB
* Update libraries, move some around
* Tweak command registration
* Remove dummyhusksync
* Fixup core synchronisation logic to use new task system
* Implement new event dispatch subsystem
* Remove last remaining future calls
* Remove `Event#fire()`
* Refactor startup process
* New command subsystem, more initialization improvements, locale fixes
* Update docs, tweak command perms
* Reduce task number during data setting
* add todo
* Start work on data format / serialization refactor
* More work on Bukkit impl
* More serialization work
* Fixes to serialization, data preview system
* Start legacy conversion skeleton
* Handle setting empty inventories
* Start on-the-fly legacy conversion work
* Add advancement conversion
* Rewrite advancement get / apply logic
* Start work on locked map persistence
* More map persistence work
* More work on map serialization
* Move around persistence logic
* Add testing suite
* Fix item synchronisation
* Finalize more reliable locked map persistence
* Remove deprecated method call
* remove sync feature enum
* Fix held item slot syncing
* Make data types modular and API-extensible
* Remove some excessive debugging, minor refactor
* Fixup date formatting, improve menu UIs
* Finish up legacy data converting
* Null safety in item stack serializaiton
* Fix relocation of nbtapi, update dumping docs
* Add v1/MPDB Migrators back in
* Fix pinning/unpinning data not working
* Consumer instead of Function for editing data
* Show file size in DataSnapshotOverview
* Fix getIdentifier always returning empty
* Re-add items and inventory GUI commands
* Improve config file, fixup data restoration
* Add min time between backups (more useful backups!)
* More work on backups
* Fixup backup rotation frequency
* Remove stdout debug print in `#getEventPriority`
* Improve sync complete locale logic, fix synchronization spelling
* Remove `static` on exception
* Use dedicated thread for Redis, properly unsubscribe
* Refactor `player` package -> `user`
* `PlayerDataHolder` -> `UserDataHolder`
* Make `StatisticsMap` public, but `@ApiStatus.Internal`
* Suppress unused warnings on `Data`
* Add option to disable Plan hook
* Decompress legacy data before converting
* Decompress bytes in fromBytes
* Check permission node before serving TAB suggestions
* Actually convert legacy item stack data
* Fix syntax errors
* Minor method refactor in items command
* Fixup case-sensitive parsing in HuskSync command
* Start API work
* More work on API, fix potion effects
* Fix cross-server, config formatting for auto-pinned issue
* Fix confusion with UserData command, update docs images
* Update commands docs
* More docs updating
* Fix sync feature enabled/disabled checking logic
* Fix `#isCustom()`
* Enable persistent_data syncing by default
* docs: update Sync-Features config snippet
* docs: correct typo in Sync Features
* More API work
* bukkit: slightly optimized schedulers
* More API work, various refactorings
* docs: Start new API docs
* bump dependencies
* Add some basic unit tests
* docs: Correct typos
* More docs work, annotate DB methods as `@Blocking`
* Encapsulate `RedisMessage`, minor optimisations
* api: Simplify `#getCurrentData`
* api: Simplify `editCurrentData`, using `ThrowingConsumers` for better error handling
* docs: More Data Snapshot API documenting
* docs: add TOC to Data Snapshot API page
* bukkit: Make data types extend BukkitData
* Move where custom data is stored, finish up Custom Data API docs
* Optimise imports
* Fix `data_manager_advancements_preview_remaining` locale
* Fix advancement and playtime previews
* Fix potion effect deserialization
* Make snapshot_backup_frequency default to 4, more error handling/logging
* docs: Add ToC to Custom Data API
* docs: Minor legacy API tweaks
* Remove some unneeded catch logic
* Suppress a few warnings
* Fix Effect constructor being supplied in wrong order
1 year ago
|
|
|
maven { url 'https://mvn-repo.arim.space/lesser-gpl3/' }
|
|
|
|
maven { url 'https://libraries.minecraft.net/' }
|
v3.0: New modular, more compatible data format, new API, better UX (#160)
* Start work on v3
* More work on task scheduling
* Add comment to notification display slot
* Synchronise branches
* Use new HuskHomes-style task system
* Bump to 2.3
* Remove HuskSyncInitializationException.java
* Optimise database for MariaDB
* Update libraries, move some around
* Tweak command registration
* Remove dummyhusksync
* Fixup core synchronisation logic to use new task system
* Implement new event dispatch subsystem
* Remove last remaining future calls
* Remove `Event#fire()`
* Refactor startup process
* New command subsystem, more initialization improvements, locale fixes
* Update docs, tweak command perms
* Reduce task number during data setting
* add todo
* Start work on data format / serialization refactor
* More work on Bukkit impl
* More serialization work
* Fixes to serialization, data preview system
* Start legacy conversion skeleton
* Handle setting empty inventories
* Start on-the-fly legacy conversion work
* Add advancement conversion
* Rewrite advancement get / apply logic
* Start work on locked map persistence
* More map persistence work
* More work on map serialization
* Move around persistence logic
* Add testing suite
* Fix item synchronisation
* Finalize more reliable locked map persistence
* Remove deprecated method call
* remove sync feature enum
* Fix held item slot syncing
* Make data types modular and API-extensible
* Remove some excessive debugging, minor refactor
* Fixup date formatting, improve menu UIs
* Finish up legacy data converting
* Null safety in item stack serializaiton
* Fix relocation of nbtapi, update dumping docs
* Add v1/MPDB Migrators back in
* Fix pinning/unpinning data not working
* Consumer instead of Function for editing data
* Show file size in DataSnapshotOverview
* Fix getIdentifier always returning empty
* Re-add items and inventory GUI commands
* Improve config file, fixup data restoration
* Add min time between backups (more useful backups!)
* More work on backups
* Fixup backup rotation frequency
* Remove stdout debug print in `#getEventPriority`
* Improve sync complete locale logic, fix synchronization spelling
* Remove `static` on exception
* Use dedicated thread for Redis, properly unsubscribe
* Refactor `player` package -> `user`
* `PlayerDataHolder` -> `UserDataHolder`
* Make `StatisticsMap` public, but `@ApiStatus.Internal`
* Suppress unused warnings on `Data`
* Add option to disable Plan hook
* Decompress legacy data before converting
* Decompress bytes in fromBytes
* Check permission node before serving TAB suggestions
* Actually convert legacy item stack data
* Fix syntax errors
* Minor method refactor in items command
* Fixup case-sensitive parsing in HuskSync command
* Start API work
* More work on API, fix potion effects
* Fix cross-server, config formatting for auto-pinned issue
* Fix confusion with UserData command, update docs images
* Update commands docs
* More docs updating
* Fix sync feature enabled/disabled checking logic
* Fix `#isCustom()`
* Enable persistent_data syncing by default
* docs: update Sync-Features config snippet
* docs: correct typo in Sync Features
* More API work
* bukkit: slightly optimized schedulers
* More API work, various refactorings
* docs: Start new API docs
* bump dependencies
* Add some basic unit tests
* docs: Correct typos
* More docs work, annotate DB methods as `@Blocking`
* Encapsulate `RedisMessage`, minor optimisations
* api: Simplify `#getCurrentData`
* api: Simplify `editCurrentData`, using `ThrowingConsumers` for better error handling
* docs: More Data Snapshot API documenting
* docs: add TOC to Data Snapshot API page
* bukkit: Make data types extend BukkitData
* Move where custom data is stored, finish up Custom Data API docs
* Optimise imports
* Fix `data_manager_advancements_preview_remaining` locale
* Fix advancement and playtime previews
* Fix potion effect deserialization
* Make snapshot_backup_frequency default to 4, more error handling/logging
* docs: Add ToC to Custom Data API
* docs: Minor legacy API tweaks
* Remove some unneeded catch logic
* Suppress a few warnings
* Fix Effect constructor being supplied in wrong order
1 year ago
|
|
|
maven { url 'https://repo.william278.net/releases/' }
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.2'
|
|
|
|
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.10.2'
|
|
|
|
testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.10.2'
|
|
|
|
}
|
|
|
|
|
|
|
|
test {
|
|
|
|
useJUnitPlatform()
|
|
|
|
}
|
|
|
|
|
|
|
|
license {
|
|
|
|
header = rootProject.file('HEADER')
|
|
|
|
include '**/*.java'
|
|
|
|
newLine = true
|
|
|
|
}
|
|
|
|
|
|
|
|
processResources {
|
|
|
|
filesMatching(['**/*.json', '**/*.yml']) {
|
|
|
|
filter ReplaceTokens as Class, beginToken: '${', endToken: '}',
|
|
|
|
tokens: rootProject.ext.properties
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
subprojects {
|
|
|
|
version rootProject.version
|
|
|
|
archivesBaseName = "${rootProject.name}-${project.name.capitalize()}"
|
|
|
|
|
|
|
|
jar {
|
|
|
|
from '../LICENSE'
|
|
|
|
}
|
|
|
|
|
|
|
|
shadowJar {
|
|
|
|
destinationDirectory.set(file("$rootDir/target"))
|
|
|
|
archiveClassifier.set('')
|
|
|
|
}
|
|
|
|
|
|
|
|
// API publishing
|
|
|
|
if (['common', 'bukkit'].contains(project.name)) {
|
|
|
|
java {
|
|
|
|
withSourcesJar()
|
|
|
|
withJavadocJar()
|
|
|
|
}
|
|
|
|
sourcesJar {
|
|
|
|
destinationDirectory.set(file("$rootDir/target"))
|
|
|
|
}
|
|
|
|
javadocJar {
|
|
|
|
destinationDirectory.set(file("$rootDir/target"))
|
|
|
|
}
|
|
|
|
shadowJar.dependsOn(sourcesJar, javadocJar)
|
|
|
|
|
|
|
|
publishing {
|
|
|
|
if (['common'].contains(project.name)) {
|
|
|
|
publications {
|
|
|
|
mavenJavaCommon(MavenPublication) {
|
|
|
|
groupId = 'net.william278.husksync'
|
|
|
|
artifactId = 'husksync-common'
|
|
|
|
version = "$rootProject.version"
|
|
|
|
artifact shadowJar
|
|
|
|
artifact sourcesJar
|
|
|
|
artifact javadocJar
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (['bukkit'].contains(project.name)) {
|
|
|
|
publications {
|
|
|
|
mavenJavaBukkit(MavenPublication) {
|
|
|
|
groupId = 'net.william278.husksync'
|
|
|
|
artifactId = 'husksync-bukkit'
|
|
|
|
version = "$rootProject.version"
|
|
|
|
artifact shadowJar
|
|
|
|
artifact sourcesJar
|
|
|
|
artifact javadocJar
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
jar.dependsOn(shadowJar)
|
|
|
|
clean.delete "$rootDir/target"
|
|
|
|
}
|
|
|
|
|
|
|
|
logger.lifecycle("Building HuskSync ${version} by William278")
|
|
|
|
|
|
|
|
@SuppressWarnings('GrMethodMayBeStatic')
|
|
|
|
def versionMetadata() {
|
|
|
|
// Get if there is a tag for this commit
|
|
|
|
def tag = grgit.tag.list().find { it.commit.id == grgit.head().id }
|
|
|
|
if (tag != null) {
|
|
|
|
return ''
|
|
|
|
}
|
|
|
|
|
|
|
|
// Otherwise, get the last commit hash and if it's a clean head
|
|
|
|
if (grgit == null) {
|
|
|
|
return '-' + System.getenv("GITHUB_RUN_NUMBER") ? 'build.' + System.getenv("GITHUB_RUN_NUMBER") : 'unknown'
|
|
|
|
}
|
|
|
|
return '-' + grgit.head().abbreviatedId + (grgit.status().clean ? '' : '-indev')
|
|
|
|
}
|