diff --git a/imprex-testsuite-core/src/main/java/dev/imprex/testsuite/server/ServerInstance.java b/imprex-testsuite-core/src/main/java/dev/imprex/testsuite/server/ServerInstance.java index f9372b9..32c20a6 100644 --- a/imprex-testsuite-core/src/main/java/dev/imprex/testsuite/server/ServerInstance.java +++ b/imprex-testsuite-core/src/main/java/dev/imprex/testsuite/server/ServerInstance.java @@ -13,6 +13,8 @@ import com.mattmalec.pterodactyl4j.UtilizationState; import com.mattmalec.pterodactyl4j.client.entities.ClientServer; +import com.mattmalec.pterodactyl4j.client.entities.Directory; +import com.mattmalec.pterodactyl4j.client.entities.GenericFile; import com.mattmalec.pterodactyl4j.client.entities.Utilization; import com.mattmalec.pterodactyl4j.client.managers.WebSocketManager; import com.mattmalec.pterodactyl4j.entities.Allocation; @@ -182,18 +184,28 @@ public CompletableFuture setupServer() { return CompletableFuture.failedFuture(new NullPointerException("No template instance")); } - return this.deletePluginFolder() + return this.deletePluginJars() .thenCompose(__ -> this.uploadServerFiles()); } - private CompletableFuture deletePluginFolder() { + private CompletableFuture deletePluginJars() { return PteroUtil.execute(this.server.retrieveDirectory()) .thenApply(directory -> directory.getDirectoryByName("plugins")) .thenCompose(optional -> { if (optional.isEmpty()) { return CompletableFuture.completedFuture(null); } - return PteroUtil.execute(optional.get().delete()); + + Directory directory = optional.get(); + CompletableFuture future = new CompletableFuture(); + + for (GenericFile file : directory.getFiles()) { + if (file.getName().endsWith(".jar")) { + future = future.thenAccept(__ -> PteroUtil.execute(file.delete())); + } + } + + return future; }); }