summaryrefslogtreecommitdiff
path: root/build.gradle
diff options
context:
space:
mode:
authorKeuin <[email protected]>2021-12-17 23:55:44 +0800
committerKeuin <[email protected]>2021-12-17 23:55:44 +0800
commit12ddbba66e6f2585e59d05d1782c0e8ce9fe6146 (patch)
tree0d98ee95c01c8509160658080523e351357d4a9b /build.gradle
parent7fc64f506ea7ebc68fcb0a9e98351deed7c1d212 (diff)
Use the latest Velocity API.
Implement API server for online players and server status. Implement core message routing abstraction and concrete BungeeCross, Velocity, Telegram endpoint impl. Load config from config file "crosslink/config.json". Test core components. Proxy API related stuff are not tested. Add README in English and Chinese. TODO: Add config hot reloading. More configurable system. PSMB endpoint impl.
Diffstat (limited to 'build.gradle')
-rw-r--r--build.gradle62
1 files changed, 58 insertions, 4 deletions
diff --git a/build.gradle b/build.gradle
index e04aa4a..b6032ec 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,4 +1,6 @@
plugins {
+ id "com.peterabeles.gversion" version "1.10"
+ id 'com.github.johnrengelman.shadow' version '7.1.0'
id 'java'
}
@@ -9,7 +11,7 @@ repositories {
mavenCentral()
maven {
name 'velocity'
- url 'https://repo.velocitypowered.com/snapshots/'
+ url 'https://repo.velocitypowered.com/snapshots'
}
maven {
name 'bungeecord-repo'
@@ -17,15 +19,67 @@ repositories {
}
}
+gversion {
+ srcDir = "src/main/java/" // path is relative to the sub-project by default
+ // Gradle variables can also be used
+ // E.g. "${project.rootDir}/module/src/main/java"
+ classPackage = "com.keuin.crosslink.util.version"
+ className = "VersionInfo" // optional. If not specified GVersion is used
+ dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'" // optional. This is the default
+ timeZone = "UTC+8" // optional. UTC is default
+ debug = false // optional. print out extra debug information
+ language = "java" // optional. Can be Java, Kotlin, YAML, or Properties. Case insensitive.
+ explicitType = false // optional. Force types to be explicitly printed
+ indent = " " // optional. Change how code is indented. 1 tab is default.
+ annotate = false // optional. Java only. Adds @Generated annotation
+}
+
+configurations {
+ provided
+ implementation.extendsFrom provided
+ testImplementation.extendsFrom provided
+ testImplementation.extendsFrom shadow
+ project.compileJava.dependsOn(createVersionFile) // auto generate class VersionInfo when compiling
+}
+
dependencies {
+ // provided: the host program (BungeeCord or Velocity) have loaded this library, no need to shade
+ // shadow: our custom dependency, should be packed into .jar
+ // TODO: reduce .jar file size
+
+ // IDEA annotations
+ implementation 'org.jetbrains:annotations:22.0.0'
// JUnit
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
// Velocity
- implementation 'com.velocitypowered:velocity-api:1.0.0-SNAPSHOT'
- annotationProcessor 'com.velocitypowered:velocity-api:1.0.0-SNAPSHOT'
+ provided 'com.velocitypowered:velocity-api:3.0.0-SNAPSHOT'
+ annotationProcessor 'com.velocitypowered:velocity-api:3.0.0-SNAPSHOT'
// BungeeCord
- implementation 'net.md-5:bungeecord-api:1.16-R0.5-SNAPSHOT'
+ provided 'net.md-5:bungeecord-api:1.16-R0.5-SNAPSHOT'
+ // https://mvnrepository.com/artifact/net.time4j/time4j-base
+ shadow 'net.time4j:time4j-base:5.8'
+ // https://mvnrepository.com/artifact/com.google.inject/guice
+ shadow 'com.google.inject:guice:5.0.1'
+ // https://mvnrepository.com/artifact/net.kyori/adventure-api
+ shadow 'net.kyori:adventure-api:4.9.3' // bungeecord does not have this, so shadow
+ // https://mvnrepository.com/artifact/net.kyori/adventure-text-serializer-plain
+ shadow 'net.kyori:adventure-text-serializer-plain:4.9.3'
+ // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core
+ shadow 'com.fasterxml.jackson.core:jackson-core:2.13.0'
+ // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind
+ shadow 'com.fasterxml.jackson.core:jackson-databind:2.13.0'
+ // https://mvnrepository.com/artifact/com.google.code.gson/gson
+ shadow 'com.google.code.gson:gson:2.8.9'
+ // https://mvnrepository.com/artifact/com.github.pengrad/java-telegram-bot-api
+ shadow 'com.github.pengrad:java-telegram-bot-api:5.5.0'
+}
+
+shadowJar {
+ configurations = [project.configurations.shadow]
+
+ // mitigate log4j security problem
+ exclude 'org/apache/logging/log4j/core/lookup/JndiLookup.class'
}
test {