From 6b16bbc785152140fdf612b67aaacf0bf39e9e03 Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Tue, 1 Jul 2025 19:00:14 +0200 Subject: [PATCH 1/8] Add DiscordDependency plugin for faster upload times --- .../DiscordDependency/build.gradle.kts | 36 +++++++++++++++++++ .../src/de/steamwar/discord/Discord.java | 29 +++++++++++++++ VelocityCore/build.gradle.kts | 5 +-- .../steamwar/velocitycore/VelocityCore.java | 2 +- settings.gradle.kts | 1 + steamwarci.yml | 1 + 6 files changed, 69 insertions(+), 5 deletions(-) create mode 100644 VelocityCore/DiscordDependency/build.gradle.kts create mode 100644 VelocityCore/DiscordDependency/src/de/steamwar/discord/Discord.java diff --git a/VelocityCore/DiscordDependency/build.gradle.kts b/VelocityCore/DiscordDependency/build.gradle.kts new file mode 100644 index 00000000..5c4c27a6 --- /dev/null +++ b/VelocityCore/DiscordDependency/build.gradle.kts @@ -0,0 +1,36 @@ +/* + * This file is a part of the SteamWar software. + * + * Copyright (C) 2024 SteamWar.de-Serverteam + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +plugins { + steamwar.java +} + +java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 +} + +dependencies { + compileOnly(libs.velocity) + annotationProcessor(libs.velocityapi) + + implementation(libs.jda) { + exclude(module = "opus-java") + } +} \ No newline at end of file diff --git a/VelocityCore/DiscordDependency/src/de/steamwar/discord/Discord.java b/VelocityCore/DiscordDependency/src/de/steamwar/discord/Discord.java new file mode 100644 index 00000000..e4548697 --- /dev/null +++ b/VelocityCore/DiscordDependency/src/de/steamwar/discord/Discord.java @@ -0,0 +1,29 @@ +/* + * This file is a part of the SteamWar software. + * + * Copyright (C) 2020 SteamWar.de-Serverteam + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +package de.steamwar.discord; + +import com.velocitypowered.api.plugin.Plugin; + +@Plugin( + id = "discordvelocitycore", + name = "DiscordVelocityCore" +) +public class Discord { +} diff --git a/VelocityCore/build.gradle.kts b/VelocityCore/build.gradle.kts index f81416a3..54b55e9c 100644 --- a/VelocityCore/build.gradle.kts +++ b/VelocityCore/build.gradle.kts @@ -51,6 +51,7 @@ dependencies { compileOnly(libs.viavelocity) compileOnly(project(":VelocityCore:Persistent", "default")) + compileOnly(project(":VelocityCore:DiscordDependency", "default")) implementation(project(":CommonCore")) implementation(project(":CommandFramework")) @@ -58,10 +59,6 @@ dependencies { implementation(libs.sqlite) implementation(libs.mysql) - implementation(libs.jda) { - exclude(module = "opus-java") - } - implementation(libs.msgpack) implementation(libs.apolloprotos) diff --git a/VelocityCore/src/de/steamwar/velocitycore/VelocityCore.java b/VelocityCore/src/de/steamwar/velocitycore/VelocityCore.java index 392478b0..22b64f64 100644 --- a/VelocityCore/src/de/steamwar/velocitycore/VelocityCore.java +++ b/VelocityCore/src/de/steamwar/velocitycore/VelocityCore.java @@ -60,7 +60,7 @@ import java.util.logging.Logger; @Plugin( id = "velocitycore", name = "VelocityCore", - dependencies = { @Dependency(id = "persistentvelocitycore") } + dependencies = { @Dependency(id = "persistentvelocitycore"), @Dependency(id = "discordvelocitycore") } ) public class VelocityCore implements ReloadablePlugin { diff --git a/settings.gradle.kts b/settings.gradle.kts index 9b530499..cb175882 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -247,6 +247,7 @@ include("TutorialSystem") include( "VelocityCore", + "VelocityCore:DiscordDependency", "VelocityCore:Persistent" ) diff --git a/steamwarci.yml b/steamwarci.yml index 3e3660b1..d62f6b62 100644 --- a/steamwarci.yml +++ b/steamwarci.yml @@ -29,6 +29,7 @@ artifacts: "/jars/TutorialSystem.jar": "TutorialSystem/build/libs/TutorialSystem.jar" "/jars/PersistentVelocityCore.jar": "VelocityCore/Persistent/build/libs/Persistent.jar" + "/jars/DiscordVelocityCore.jar": "VelocityCore/DiscordDependency/build/libs/DiscordDependency.jar" "/jars/VelocityCore.jar": "VelocityCore/build/libs/VelocityCore-all.jar" "/usr/local/bin/deployarena.py": "VelocityCore/deployarena.py" From 8677d59cce95a99613c609b3f307ff0cbc60804a Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Tue, 1 Jul 2025 19:04:13 +0200 Subject: [PATCH 2/8] Fix some stuff --- VelocityCore/DiscordDependency/build.gradle.kts | 1 + VelocityCore/build.gradle.kts | 1 + 2 files changed, 2 insertions(+) diff --git a/VelocityCore/DiscordDependency/build.gradle.kts b/VelocityCore/DiscordDependency/build.gradle.kts index 5c4c27a6..dbe2ac56 100644 --- a/VelocityCore/DiscordDependency/build.gradle.kts +++ b/VelocityCore/DiscordDependency/build.gradle.kts @@ -19,6 +19,7 @@ plugins { steamwar.java + alias(libs.plugins.shadow) } java { diff --git a/VelocityCore/build.gradle.kts b/VelocityCore/build.gradle.kts index 54b55e9c..5074c280 100644 --- a/VelocityCore/build.gradle.kts +++ b/VelocityCore/build.gradle.kts @@ -70,5 +70,6 @@ tasks.register("DevVelocity") { description = "Run a Dev Velocity" dependsOn(":VelocityCore:shadowJar") dependsOn(":VelocityCore:Persistent:jar") + dependsOn(":VelocityCore:DiscordDependency:jar") template = "DevVelocity" } From bc00873314fc2e952d53e1d509ae0a86f6abc4ce Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Tue, 1 Jul 2025 21:28:59 +0200 Subject: [PATCH 3/8] Update UserPerm --- CommonCore/SQL/src/de/steamwar/sql/UserPerm.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CommonCore/SQL/src/de/steamwar/sql/UserPerm.java b/CommonCore/SQL/src/de/steamwar/sql/UserPerm.java index ed842d54..72aebd3a 100644 --- a/CommonCore/SQL/src/de/steamwar/sql/UserPerm.java +++ b/CommonCore/SQL/src/de/steamwar/sql/UserPerm.java @@ -55,11 +55,11 @@ public enum UserPerm { p.put(PREFIX_YOUTUBER, new Prefix("§7", "YT")); p.put(PREFIX_GUIDE, new Prefix("§a", "Guide")); - p.put(PREFIX_SUPPORTER, new Prefix("§6", "Sup")); - p.put(PREFIX_MODERATOR, new Prefix("§6", "Mod")); - p.put(PREFIX_BUILDER, new Prefix("§e", "Arch")); - p.put(PREFIX_DEVELOPER, new Prefix("§e", "Dev")); - p.put(PREFIX_ADMIN, new Prefix("§e", "Admin")); + p.put(PREFIX_SUPPORTER, new Prefix("§x§1§e§3§a§8§a", "Sup")); // #1e3a8a + p.put(PREFIX_MODERATOR, new Prefix("§x§9§2§4§0§0§e", "Mod")); // #92400e + p.put(PREFIX_BUILDER, new Prefix("§x§1§5§8§0§3§d", "Arch")); // #15803d + p.put(PREFIX_DEVELOPER, new Prefix("§x§0§7§5§9§8§5", "Dev")); // #075985 + p.put(PREFIX_ADMIN, new Prefix("§x§9§9§1§b§1§b", "Admin")); // #991b1b prefixes = Collections.unmodifiableMap(p); } From 4ed6bc52d063bf16edc13aa488dc4f8fa3fe71fe Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Tue, 1 Jul 2025 21:37:12 +0200 Subject: [PATCH 4/8] Update TheBreadBeards Easter particle --- .../lobby/particle/elements/None.java | 30 +++++++++++++++++++ .../custom/CustomEasterParticle.java | 19 +++++++----- 2 files changed, 41 insertions(+), 8 deletions(-) create mode 100644 LobbySystem/src/de/steamwar/lobby/particle/elements/None.java diff --git a/LobbySystem/src/de/steamwar/lobby/particle/elements/None.java b/LobbySystem/src/de/steamwar/lobby/particle/elements/None.java new file mode 100644 index 00000000..42bb013d --- /dev/null +++ b/LobbySystem/src/de/steamwar/lobby/particle/elements/None.java @@ -0,0 +1,30 @@ +/* + * This file is a part of the SteamWar software. + * + * Copyright (C) 2020 SteamWar.de-Serverteam + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +package de.steamwar.lobby.particle.elements; + +import de.steamwar.lobby.particle.ParticleElement; +import de.steamwar.lobby.particle.ParticleTickData; + +public class None implements ParticleElement { + + @Override + public void tick(ParticleTickData particleTickData) { + } +} diff --git a/LobbySystem/src/de/steamwar/lobby/particle/particles/custom/CustomEasterParticle.java b/LobbySystem/src/de/steamwar/lobby/particle/particles/custom/CustomEasterParticle.java index 3c8d43c5..da207081 100644 --- a/LobbySystem/src/de/steamwar/lobby/particle/particles/custom/CustomEasterParticle.java +++ b/LobbySystem/src/de/steamwar/lobby/particle/particles/custom/CustomEasterParticle.java @@ -78,14 +78,17 @@ public enum CustomEasterParticle implements ParticleEnum { // TODO: Implement TheReaper22122! // TODO: Implement Bosslar! // TODO: Implement ATOM65! - PLAYER_3266(new ParticleData(Material.CHORUS_FRUIT, "PARTICLE_PLAYER_3266", ParticleRequirement.easterEventSpecificPlayer(3266), - new Always(new NonFlying(new Cloud(new LocationMutator(new TrippleCircle( - new DustParticle(Particle.REDSTONE, new Gradient(Color.CYAN, Color.BLUE, Color.MAGENTA.darker(), Color.RED, Color.YELLOW, Color.GREEN, Color.CYAN)), - new DustParticle(Particle.REDSTONE, new Gradient(Color.CYAN, Color.BLUE, Color.MAGENTA.darker(), Color.RED, Color.YELLOW, Color.GREEN, Color.CYAN)), - new DustParticle(Particle.REDSTONE, new Gradient(Color.CYAN, Color.BLUE, Color.MAGENTA.darker(), Color.RED, Color.YELLOW, Color.GREEN, Color.CYAN)), - 0.7, - 0.5), location -> location.add(0, 0.6, 0) - ))))) + PLAYER_3266(new ParticleData(Material.BREAD, "PARTICLE_PLAYER_3266", ParticleRequirement.easterEventSpecificPlayer(3266), + new Group( + new Always(new Sneaking(new LocationMutator(new None(), location -> location))), + new Always(new NonFlying(new LocationMutator(new TrippleCircle( + new DustParticle(Particle.REDSTONE, new Gradient(Color.CYAN, Color.BLUE, Color.MAGENTA.darker(), Color.RED, Color.YELLOW, Color.GREEN, Color.CYAN)), + new DustParticle(Particle.REDSTONE, new Gradient(Color.CYAN, Color.BLUE, Color.MAGENTA.darker(), Color.RED, Color.YELLOW, Color.GREEN, Color.CYAN)), + new DustParticle(Particle.REDSTONE, new Gradient(Color.CYAN, Color.BLUE, Color.MAGENTA.darker(), Color.RED, Color.YELLOW, Color.GREEN, Color.CYAN)), + 0.7, + 0.5), location -> location.add(0, 0.6, 0) + )))) + ) ), // TODO: Implement Gehfxhler! // TODO: Implement SchwarzerFuerst From 6efbda669e79d569c084db0e5e47566b8fdefbda Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Wed, 2 Jul 2025 11:17:55 +0200 Subject: [PATCH 5/8] Optimize and improve VelocityCore size Improve steamwar.devserver.gradle to not upload anything that is up to date! --- .../build.gradle.kts | 12 ++++++++++ .../de/steamwar/discord/Dependencies.java} | 6 ++--- VelocityCore/build.gradle.kts | 12 ++-------- .../steamwar/velocitycore/VelocityCore.java | 2 +- buildSrc/src/steamwar.devserver.gradle | 23 ++++++++++++++++--- settings.gradle.kts | 2 +- 6 files changed, 39 insertions(+), 18 deletions(-) rename VelocityCore/{DiscordDependency => Dependencies}/build.gradle.kts (83%) rename VelocityCore/{DiscordDependency/src/de/steamwar/discord/Discord.java => Dependencies/src/de/steamwar/discord/Dependencies.java} (88%) diff --git a/VelocityCore/DiscordDependency/build.gradle.kts b/VelocityCore/Dependencies/build.gradle.kts similarity index 83% rename from VelocityCore/DiscordDependency/build.gradle.kts rename to VelocityCore/Dependencies/build.gradle.kts index dbe2ac56..d71a6c10 100644 --- a/VelocityCore/DiscordDependency/build.gradle.kts +++ b/VelocityCore/Dependencies/build.gradle.kts @@ -22,6 +22,10 @@ plugins { alias(libs.plugins.shadow) } +tasks.build { + finalizedBy(tasks.shadowJar) +} + java { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 @@ -34,4 +38,12 @@ dependencies { implementation(libs.jda) { exclude(module = "opus-java") } + + implementation(libs.sqlite) + implementation(libs.mysql) + + implementation(libs.msgpack) + implementation(libs.apolloprotos) + + implementation(libs.nbt) } \ No newline at end of file diff --git a/VelocityCore/DiscordDependency/src/de/steamwar/discord/Discord.java b/VelocityCore/Dependencies/src/de/steamwar/discord/Dependencies.java similarity index 88% rename from VelocityCore/DiscordDependency/src/de/steamwar/discord/Discord.java rename to VelocityCore/Dependencies/src/de/steamwar/discord/Dependencies.java index e4548697..f3b2a243 100644 --- a/VelocityCore/DiscordDependency/src/de/steamwar/discord/Discord.java +++ b/VelocityCore/Dependencies/src/de/steamwar/discord/Dependencies.java @@ -22,8 +22,8 @@ package de.steamwar.discord; import com.velocitypowered.api.plugin.Plugin; @Plugin( - id = "discordvelocitycore", - name = "DiscordVelocityCore" + id = "depencendiesvelocitycore", + name = "DepencendiesVelocityCore" ) -public class Discord { +public class Dependencies { } diff --git a/VelocityCore/build.gradle.kts b/VelocityCore/build.gradle.kts index 5074c280..91121ea3 100644 --- a/VelocityCore/build.gradle.kts +++ b/VelocityCore/build.gradle.kts @@ -51,18 +51,10 @@ dependencies { compileOnly(libs.viavelocity) compileOnly(project(":VelocityCore:Persistent", "default")) - compileOnly(project(":VelocityCore:DiscordDependency", "default")) + compileOnly(project(":VelocityCore:Dependencies", "default")) implementation(project(":CommonCore")) implementation(project(":CommandFramework")) - - implementation(libs.sqlite) - implementation(libs.mysql) - - implementation(libs.msgpack) - implementation(libs.apolloprotos) - - implementation(libs.nbt) } tasks.register("DevVelocity") { @@ -70,6 +62,6 @@ tasks.register("DevVelocity") { description = "Run a Dev Velocity" dependsOn(":VelocityCore:shadowJar") dependsOn(":VelocityCore:Persistent:jar") - dependsOn(":VelocityCore:DiscordDependency:jar") + dependsOn(":VelocityCore:Dependencies:shadowJar") template = "DevVelocity" } diff --git a/VelocityCore/src/de/steamwar/velocitycore/VelocityCore.java b/VelocityCore/src/de/steamwar/velocitycore/VelocityCore.java index 22b64f64..aa98a034 100644 --- a/VelocityCore/src/de/steamwar/velocitycore/VelocityCore.java +++ b/VelocityCore/src/de/steamwar/velocitycore/VelocityCore.java @@ -60,7 +60,7 @@ import java.util.logging.Logger; @Plugin( id = "velocitycore", name = "VelocityCore", - dependencies = { @Dependency(id = "persistentvelocitycore"), @Dependency(id = "discordvelocitycore") } + dependencies = { @Dependency(id = "persistentvelocitycore"), @Dependency(id = "depencendiesvelocitycore") } ) public class VelocityCore implements ReloadablePlugin { diff --git a/buildSrc/src/steamwar.devserver.gradle b/buildSrc/src/steamwar.devserver.gradle index 53f8be3d..5d75c087 100644 --- a/buildSrc/src/steamwar.devserver.gradle +++ b/buildSrc/src/steamwar.devserver.gradle @@ -46,6 +46,19 @@ class DevServer extends DefaultTask { DevServer() { super() + List upToDateTasks = [] + project.gradle.taskGraph.addTaskExecutionListener(new TaskExecutionListener() { + @Override + void beforeExecute(Task task) { + } + + @Override + void afterExecute(Task task, TaskState state) { + if (state.upToDate) { + upToDateTasks.add(task); + } + } + }) doFirst { List projects = [] projects.add(project) @@ -70,7 +83,7 @@ class DevServer extends DefaultTask { } doLast { checkHasTemplate() - uploadDependencies() + uploadDependencies(upToDateTasks) startDevServer() } finalizedBy(new Finalizer()) @@ -107,7 +120,7 @@ class DevServer extends DefaultTask { } } - void uploadDependencies() { + void uploadDependencies(List upToDateTasks) { def base = plugins == null ? "$template/plugins" : plugins println("Uploading to ~/$base") this.dependsOn.forEach { @@ -119,8 +132,12 @@ class DevServer extends DefaultTask { } else { throw new GradleException("Illegal argument for uploading dependencies") } - def archive = archiveTask.archiveFile.get().asFile + if (upToDateTasks.contains(archiveTask)) { + println("Skipping $archive") + return + } + println("Uploading $archive") new ProcessBuilder("ssh", host, "-T", "rm $base/${archive.name.replace("-all", "")}").start().waitFor() new ProcessBuilder("scp", archive.absolutePath, "$host:~/$base/${archive.name.replace("-all", "")}").start().waitFor() diff --git a/settings.gradle.kts b/settings.gradle.kts index cb175882..8ab618ff 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -247,7 +247,7 @@ include("TutorialSystem") include( "VelocityCore", - "VelocityCore:DiscordDependency", + "VelocityCore:Dependencies", "VelocityCore:Persistent" ) From 3b67048b9c1424452cf9d50de08c0eeeeb2a5e9b Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Wed, 2 Jul 2025 11:22:36 +0200 Subject: [PATCH 6/8] Improve jar size --- VelocityCore/Dependencies/build.gradle.kts | 12 ++++++++++++ VelocityCore/build.gradle.kts | 13 ------------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/VelocityCore/Dependencies/build.gradle.kts b/VelocityCore/Dependencies/build.gradle.kts index d71a6c10..009768d0 100644 --- a/VelocityCore/Dependencies/build.gradle.kts +++ b/VelocityCore/Dependencies/build.gradle.kts @@ -22,6 +22,18 @@ plugins { alias(libs.plugins.shadow) } +tasks.shadowJar { + exclude("META-INF/*") + exclude("org/sqlite/native/FreeBSD/**', 'org/sqlite/native/Mac/**', 'org/sqlite/native/Windows/**', 'org/sqlite/native/Linux-Android/**', 'org/sqlite/native/Linux-Musl/**") + exclude("org/sqlite/native/Linux/aarch64/**', 'org/sqlite/native/Linux/arm/**', 'org/sqlite/native/Linux/armv6/**', 'org/sqlite/native/Linux/armv7/**', 'org/sqlite/native/Linux/ppc64/**', 'org/sqlite/native/Linux/x86/**") + exclude("org/slf4j/**") + //https://imperceptiblethoughts.com/shadow/configuration/minimizing/ + minimize { + exclude(dependency("mysql:mysql-connector-java:.*")) + } + duplicatesStrategy = DuplicatesStrategy.INCLUDE +} + tasks.build { finalizedBy(tasks.shadowJar) } diff --git a/VelocityCore/build.gradle.kts b/VelocityCore/build.gradle.kts index 91121ea3..f290ed22 100644 --- a/VelocityCore/build.gradle.kts +++ b/VelocityCore/build.gradle.kts @@ -22,19 +22,6 @@ plugins { alias(libs.plugins.shadow) } -tasks.shadowJar { - exclude("META-INF/*") - exclude("org/sqlite/native/FreeBSD/**', 'org/sqlite/native/Mac/**', 'org/sqlite/native/Windows/**', 'org/sqlite/native/Linux-Android/**', 'org/sqlite/native/Linux-Musl/**") - exclude("org/sqlite/native/Linux/aarch64/**', 'org/sqlite/native/Linux/arm/**', 'org/sqlite/native/Linux/armv6/**', 'org/sqlite/native/Linux/armv7/**', 'org/sqlite/native/Linux/ppc64/**', 'org/sqlite/native/Linux/x86/**") - exclude("org/slf4j/**") - //https://imperceptiblethoughts.com/shadow/configuration/minimizing/ - minimize { - exclude(project(":VelocityCore")) - exclude(dependency("mysql:mysql-connector-java:.*")) - } - duplicatesStrategy = DuplicatesStrategy.INCLUDE -} - tasks.build { finalizedBy(tasks.shadowJar) } From e56c41ca6617b7cf1031527d3c41503b1cc8835a Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Wed, 2 Jul 2025 11:36:06 +0200 Subject: [PATCH 7/8] Improve dependency upload --- buildSrc/src/steamwar.devserver.gradle | 33 +++++++++++++------------- steamwarci.yml | 2 +- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/buildSrc/src/steamwar.devserver.gradle b/buildSrc/src/steamwar.devserver.gradle index 5d75c087..3c5cf882 100644 --- a/buildSrc/src/steamwar.devserver.gradle +++ b/buildSrc/src/steamwar.devserver.gradle @@ -1,3 +1,5 @@ +import java.security.MessageDigest + /* * This file is a part of the SteamWar software. * @@ -46,19 +48,6 @@ class DevServer extends DefaultTask { DevServer() { super() - List upToDateTasks = [] - project.gradle.taskGraph.addTaskExecutionListener(new TaskExecutionListener() { - @Override - void beforeExecute(Task task) { - } - - @Override - void afterExecute(Task task, TaskState state) { - if (state.upToDate) { - upToDateTasks.add(task); - } - } - }) doFirst { List projects = [] projects.add(project) @@ -83,7 +72,7 @@ class DevServer extends DefaultTask { } doLast { checkHasTemplate() - uploadDependencies(upToDateTasks) + uploadDependencies() startDevServer() } finalizedBy(new Finalizer()) @@ -120,7 +109,7 @@ class DevServer extends DefaultTask { } } - void uploadDependencies(List upToDateTasks) { + void uploadDependencies() { def base = plugins == null ? "$template/plugins" : plugins println("Uploading to ~/$base") this.dependsOn.forEach { @@ -132,8 +121,20 @@ class DevServer extends DefaultTask { } else { throw new GradleException("Illegal argument for uploading dependencies") } + def archive = archiveTask.archiveFile.get().asFile - if (upToDateTasks.contains(archiveTask)) { + + Process process = new ProcessBuilder("ssh", host, "-T", "sha1sum $base/${archive.name.replace("-all", "")}").start(); + byte[] bytes = MessageDigest.getInstance("sha1").digest(archive.bytes) + StringBuilder sb = new StringBuilder() + for (byte b : bytes) { + sb.append(String.format("%02X", b)) + } + boolean same = false + process.inputStream.readLines().forEach { + same |= it.startsWith(sb.toString().toLowerCase()) + } + if (same) { println("Skipping $archive") return } diff --git a/steamwarci.yml b/steamwarci.yml index d62f6b62..5548033a 100644 --- a/steamwarci.yml +++ b/steamwarci.yml @@ -29,7 +29,7 @@ artifacts: "/jars/TutorialSystem.jar": "TutorialSystem/build/libs/TutorialSystem.jar" "/jars/PersistentVelocityCore.jar": "VelocityCore/Persistent/build/libs/Persistent.jar" - "/jars/DiscordVelocityCore.jar": "VelocityCore/DiscordDependency/build/libs/DiscordDependency.jar" + "/jars/DependenciesVelocityCore.jar": "VelocityCore/Dependencies/build/libs/Dependencies-all.jar" "/jars/VelocityCore.jar": "VelocityCore/build/libs/VelocityCore-all.jar" "/usr/local/bin/deployarena.py": "VelocityCore/deployarena.py" From 60347bc481c3984e201b5160624a6f0fdcf30d6f Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Wed, 2 Jul 2025 11:53:24 +0200 Subject: [PATCH 8/8] Hotfix dependencies --- VelocityCore/Dependencies/build.gradle.kts | 3 --- 1 file changed, 3 deletions(-) diff --git a/VelocityCore/Dependencies/build.gradle.kts b/VelocityCore/Dependencies/build.gradle.kts index 009768d0..fab7a7f0 100644 --- a/VelocityCore/Dependencies/build.gradle.kts +++ b/VelocityCore/Dependencies/build.gradle.kts @@ -28,9 +28,6 @@ tasks.shadowJar { exclude("org/sqlite/native/Linux/aarch64/**', 'org/sqlite/native/Linux/arm/**', 'org/sqlite/native/Linux/armv6/**', 'org/sqlite/native/Linux/armv7/**', 'org/sqlite/native/Linux/ppc64/**', 'org/sqlite/native/Linux/x86/**") exclude("org/slf4j/**") //https://imperceptiblethoughts.com/shadow/configuration/minimizing/ - minimize { - exclude(dependency("mysql:mysql-connector-java:.*")) - } duplicatesStrategy = DuplicatesStrategy.INCLUDE }