170 lines
4.3 KiB
Groovy
170 lines
4.3 KiB
Groovy
import com.google.gson.GsonBuilder
|
|
import com.google.gson.JsonObject
|
|
import com.google.gson.JsonParser
|
|
import org.yaml.snakeyaml.DumperOptions
|
|
import org.yaml.snakeyaml.Yaml
|
|
|
|
import java.nio.charset.StandardCharsets
|
|
|
|
buildscript {
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
dependencies {
|
|
classpath group: 'org.yaml', name: 'snakeyaml', version: '1.26'
|
|
classpath group: 'com.google.code.gson', name: 'gson', version: '2.8.6'
|
|
}
|
|
}
|
|
|
|
plugins {
|
|
id 'java'
|
|
id 'idea'
|
|
id 'fabric-loom' version '0.6-SNAPSHOT'
|
|
}
|
|
|
|
repositories {
|
|
maven {
|
|
url = 'https://repo1.maven.org/maven2/'
|
|
}
|
|
maven {
|
|
url = 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/'
|
|
}
|
|
maven {
|
|
url = 'https://repo.dmulloy2.net/nexus/repository/public/'
|
|
}
|
|
maven {
|
|
url = 'https://oss.sonatype.org/content/repositories/snapshots'
|
|
}
|
|
maven {
|
|
url = 'https://papermc.io/repo/repository/maven-public/'
|
|
}
|
|
maven {
|
|
url = 'https://repo.velocitypowered.com/snapshots/'
|
|
}
|
|
maven {
|
|
url = 'https://maven.fabricmc.net/'
|
|
}
|
|
flatDir {
|
|
dirs '/libs'
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
// Bukkit
|
|
compileOnly group: 'org.spigotmc', name: 'spigot-api', version: '1.11-R0.1-SNAPSHOT'
|
|
compileOnly group: 'com.comphenix.protocol', name: 'ProtocolLib', version: '4.4.0'
|
|
|
|
// Paper
|
|
compileOnly group: 'com.destroystokyo.paper', name: 'paper-api', version: '1.16.5-R0.1-20210227.144841-85'
|
|
|
|
// BungeeCord
|
|
compileOnly group: 'net.md-5', name: 'bungeecord-api', version: '1.14-SNAPSHOT'
|
|
|
|
// Velocity
|
|
compileOnly group: 'com.velocitypowered', name: 'velocity-api', version: '1.0.0-SNAPSHOT'
|
|
|
|
// Fabric
|
|
minecraft "com.mojang:minecraft:1.16.5"
|
|
mappings "net.fabricmc:yarn:1.16.5+build.5:v2"
|
|
modImplementation group: 'net.fabricmc', name: 'fabric-loader', version: '0.11.2'
|
|
|
|
// Testing
|
|
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.7.0-M1'
|
|
testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.7.0-M1'
|
|
|
|
compileOnly 'org.geyser:floodgate-spigot:2.0'
|
|
}
|
|
|
|
test {
|
|
useJUnitPlatform()
|
|
}
|
|
|
|
configurations {
|
|
testImplementation.extendsFrom compileOnly
|
|
}
|
|
|
|
version = '2.5'
|
|
group = 'net.tcpshield.tcpshield'
|
|
archivesBaseName = 'TCPShield'
|
|
|
|
sourceSets {
|
|
main {
|
|
java {
|
|
srcDirs('src/main/java')
|
|
}
|
|
resources {
|
|
srcDirs('src/main/resources')
|
|
}
|
|
}
|
|
test {
|
|
java {
|
|
srcDirs('src/test/java')
|
|
}
|
|
resources {
|
|
srcDirs('src/test/resources')
|
|
}
|
|
}
|
|
}
|
|
|
|
idea {
|
|
module {
|
|
downloadJavadoc = true
|
|
downloadSources = true
|
|
}
|
|
}
|
|
|
|
compileJava {
|
|
sourceCompatibility = targetCompatibility = '1.8'
|
|
options.encoding = 'UTF-8'
|
|
}
|
|
|
|
task updateVersion {
|
|
updateYaml()
|
|
updateJson()
|
|
}
|
|
|
|
void updateYaml() {
|
|
DumperOptions options = new DumperOptions()
|
|
options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK)
|
|
options.setSplitLines(false)
|
|
options.setPrettyFlow(true)
|
|
|
|
def yaml = new Yaml(options)
|
|
|
|
def bukkitYamlFile = new File('src/main/resources/plugin.yml')
|
|
def bungeeYamlFile = new File('src/main/resources/bungee.yml')
|
|
|
|
def files = [bukkitYamlFile, bungeeYamlFile]
|
|
files.each { file ->
|
|
file.newInputStream().withCloseable { inputStream ->
|
|
def cfg = yaml.load(inputStream)
|
|
cfg.put("version", version)
|
|
|
|
new FileWriter(file).withCloseable { writer ->
|
|
yaml.dump(cfg, writer)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void updateJson() {
|
|
def gson = new GsonBuilder().setPrettyPrinting().create();
|
|
def velocityJson = new File('src/main/resources/velocity-plugin.json')
|
|
|
|
def files = [velocityJson]
|
|
files.each { file ->
|
|
file.newInputStream().withCloseable { inputStream ->
|
|
new InputStreamReader(inputStream, StandardCharsets.UTF_8).withCloseable { inputStreamReader ->
|
|
JsonObject object = JsonParser.parseReader(inputStreamReader).getAsJsonObject()
|
|
object.addProperty("version", version.toString())
|
|
|
|
new FileWriter(file).withCloseable { writer ->
|
|
writer.write(gson.toJson(object))
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
build.dependsOn updateVersion |